Oracle INSERT INTO类型集合表

时间:2016-04-28 06:32:55

标签: oracle

如何将数据插入此表结构。

CREATE TABLE COLLECTION_TABLE (id number, collection_object COLLECTION_01
) nested table collection_object store as collection;

其中COLLECTION_01是一种类型

CREATE OR REPLACE TYPE COLLECTION_01 AS TABLE OF dept_typ_01;

WHERE dept_typ_01是

CREATE TYPE dept_typ_01 AS OBJECT( mgr Person_typ, emps Person_typ);

其中Person_typ是

CREATE TYPE Person_typ_01 AS OBJECT( name CHAR(20),ssn CHAR(12));

我尝试使用空构造函数

INSERT INTO COLLECTION_TABLE values (2, COLLECTION_01())

只插入空数据,但是当我尝试使用

INSERT INTO 
  COLLECTION_TABLE 
    values (2, COLLECTION_01(
      dept_typ_01( 
        mgr(Person_typ_01 ('name','ssn', 'addr')),
        emps(Person_typ_01 ('name','ssn', 'addr'))
        )
      )
    );

Oracle被赋予例外

SQL Error: ORA-00904: "EMPS": invalid identifier

有人可以在这里说清楚吗?

1 个答案:

答案 0 :(得分:0)

这就是诀窍

INSERT INTO 
  COLLECTION_TABLE 
    values (2, COLLECTION_01(
      dept_typ_01(
          (PERSON_TYP ('name1','ssn1', 'addr2')),
          (PERSON_TYP ('name2','ssn2', 'addr2'))
        )
      )
    );