在Oracle中创建嵌套表时出错
下面是我创建的表格在Oracle中创建嵌套表时出错,oracle,plsql,oracle11g,orm,object-relational-model,Oracle,Plsql,Oracle11g,Orm,Object Relational Model,下面是我创建的表格 CREATE TYPE ft_obj AS OBJECT ( ftid NUMBER(5), ftlocation VARCHAR(30), country VARCHAR(10) ); / CREATE TABLE ft_table OF ft_obj ( ftid PRIMARY KEY ) OBJECT IDENTIFIER IS PRIMARY KEY; / CREATE TYPE frod_obj A
CREATE TYPE ft_obj AS OBJECT (
ftid NUMBER(5),
ftlocation VARCHAR(30),
country VARCHAR(10)
);
/
CREATE TABLE ft_table OF ft_obj (
ftid PRIMARY KEY
) OBJECT IDENTIFIER IS PRIMARY KEY;
/
CREATE TYPE frod_obj AS OBJECT (
prodid NUMBER(6),
ft_ref ft_obj,
proddesc VARCHAR(50),
costperitem DECIMAL,
labcostperitem DECIMAL
);
/
CREATE TABLE frod_table OF frod_obj (
prodid PRIMARY KEY
) OBJECT IDENTIFIER IS PRIMARY KEY;
CREATE TYPE wf_obj AS OBJECT (
wfid NUMBER,
ft_ref ft_obj,
wfname VARCHAR(30),
taxcode INT,
yearlyincome DECIMAL,
yearlytax DECIMAL
);
/
CREATE TABLE wf_table OF wf_obj (
wfid PRIMARY KEY
) OBJECT IDENTIFIER IS PRIMARY KEY;
/
CREATE TYPE wfusage_obj AS OBJECT (
jobdate DATE,
jobhours INT,
jobhourlyrate DECIMAL,
jobposted CHAR,
wfid_ref REF wf_obj
);
/
CREATE TYPE wfusage_nesttabtyp AS
TABLE OF wfusage_obj;
/
CREATE TABLE wfusage_objtab OF wfusage_obj;
/
CREATE TYPE odetails_obj AS OBJECT (
mfid NUMBER,
prodid_ref REF frod_obj,
quantity INT,
itemprice DECIMAL,
wfusage_ntab wfusage_nesttabtyp
);
/
CREATE TYPE odetails_nesttabtyp AS
TABLE OF odetails_obj;
/
CREATE TYPE prod_obj AS OBJECT (
prodoid NUMBER,
odate DATE,
promisedate DATE,
completiondate DATE,
shipmentdate DATE,
status VARCHAR(20),
odetails_ntab odetails_nesttabtyp
);
/
CREATE TABLE prod_objtab OF prod_obj (
PRIMARY KEY ( prodoid )
) OBJECT IDENTIFIER IS PRIMARY KEY
NESTED TABLE odetails_ntab STORE AS oprod_ntab ( (
PRIMARY KEY ( nested_table_id,
mfid )
)
ORGANIZATION INDEX
COMPRESS ) RETURN AS LOCATOR
/
ALTER TABLE oprod_ntab ADD (
SCOPE FOR ( prodid_ref ) IS frod_table
);
/
创建嵌套表时出现以下错误
ORA-02320:为嵌套表列创建存储表失败
odetails\u ntab ORA-25175:未找到主键约束
232000000-“为嵌套表列%s创建存储表失败”
*原因:为创建存储表时出错
指定的嵌套表列。
*操作:有关更多详细信息,请参阅下面的消息。如果情况
他们描述可以改正的,就这样做;否则请联系Oracle
支持
获取第9行中的错误
ORA-01401:插入的值对于列太大
ORA-02320:为嵌套表列创建存储表失败
odetails_ntab ORA-25175:未找到主键约束02320。00000
-“为嵌套表列%s创建存储表失败”*原因:为指定的嵌套表列创建存储表时出错*操作:查看下面的消息
更多细节。如果他们描述的情况能够得到纠正,请执行以下操作
所以否则请与Oracle支持部门联系
由于您已经完成了多级
嵌套,因此在创建表时,您需要两级存储
以及嵌套的
表。请参见下面的操作方法
CREATE TABLE prod_objtab OF prod_obj (
PRIMARY KEY ( prodoid )
) OBJECT IDENTIFIER IS PRIMARY KEY
NESTED TABLE odetails_ntab STORE AS oprod_ntab ( ( PRIMARY KEY (NESTED_TABLE_ID, mfid ))
ORGANIZATION INDEX COMPRESS
NESTED TABLE wfusage_ntab STORE AS XX ) RETURN AS LOCATOR;
阅读更多
CREATE TABLE prod_objtab OF prod_obj (
PRIMARY KEY ( prodoid )
) OBJECT IDENTIFIER IS PRIMARY KEY
NESTED TABLE odetails_ntab STORE AS oprod_ntab ( ( PRIMARY KEY (NESTED_TABLE_ID, mfid ))
ORGANIZATION INDEX COMPRESS
NESTED TABLE wfusage_ntab STORE AS XX ) RETURN AS LOCATOR;