无法创建具有对象类型列的表(并且相同的对象类型包含嵌套表类型的属性)

问题描述 投票:0回答:1

我试图创建一个具有对象类型列和棘手的嵌套表层次结构的表。得到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:必须为嵌套表列或属性指定表名

oracle plsql user-defined-types
1个回答
1
投票

刚刚找到解决方案。 How do I create an Oracle table of objects containing nested tables? create table语句应如下所示。

CREATE TABLE TestTableDesi (
theCol MainObj
) nested table theCol.ChildList store as ChildList_tab ;
/
© www.soinside.com 2019 - 2024. All rights reserved.