在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;