我的问题与 9454933 类似,但我的嵌套表位于对象内。
我希望创建一个用户定义类型的表,其中定义的类型包含一个对象,我的简化设置如下所示
CREATE TYPE DEMO_TYPE1 AS OBJECT (A1 NUMBER, A2 NUMBER);
CREATE TYPE DEMO_TAB_TYPE1 AS TABLE OF DEMO_TYPE1;
CREATE TYPE DEMO_TYPE2 AS OBJECT (B1 NUMBER, B2 DEMO_TAB_TYPE1);
CREATE TABLE DEMO_TAB1 (C1 NUMBER, C2 DEMO_TYPE2);
如果我运行以上操作,我会收到以下错误
The storage clause is not specified for the nested table column or attribute.
这是有道理的,但我无法找出正确的语法来解决这个问题我试过
CREATE TABLE DEMO_TAB1 (C1 NUMBER, C2 DEMO_TYPE2)
NESTED TABLE B2 STORE AS B2_TAB;
但是这个和我试过的所有其他变化都会产生 ORA-00922:缺少或无效选项
那么我该如何解决这个问题?
答案 0 :(得分:0)
错误的原因是C2不是嵌套表。嵌套表是C2内的B2,所以你应该试试这个:
CREATE TABLE DEMO_TAB1 (C1 NUMBER, C2 DEMO_TYPE2)
NESTED TABLE C2.B2 STORE AS B2_TAB;
请参阅sqlfiddle:sqlfiddle.com/#!4/6c662/1