无法使用对象类型的列创建表(并且同一对象类型包含嵌套表类型的属性)

时间:2019-03-29 15:58:47

标签: oracle plsql user-defined-types

我试图用对象类型和棘手的嵌套表层次结构创建一个表。出现ORA-22913错误。在CREATE表语句中,“ theCol”列的类型为object(即MainObj)。 MainObj包含嵌套表类型的属性,即ChildTab。 我认为应该在CREATE TABLE语句中使用NESTED TABLE子句。但是不确定在这里如何使用它,因为“ theCol”不是嵌套表类型。

DROP TYPE MainObj;
DROP TYPE ChildTab;
DROP TYPE ChildObj;

CREATE TYPE ChildObj AS OBJECT (
naame varchar2(20)
, kaam varchar2(20)
);
/

CREATE TYPE ChildTab AS TABLE OF ChildObj;
/

Create TYPE MainObj as OBJECT (
    KEEY VARCHAR2(5),
    ChildList  ChildTab
);
/

CREATE TABLE TestTableDesi (
 theCol MainObj
);
/

类型已删除。 类型已删除。 类型已删除。 类型已创建。 类型已创建。 类型已创建。 ORA-22913:必须为嵌套表的列或属性指定表名

1 个答案:

答案 0 :(得分:1)

在这里找到解决方案。 https://stackoverflow.com/a/46964827/127434 创建表语句应如下所示。

type1_instance1 is less than type1_instance2