如何从嵌套表中选择指向对象引用的列

时间:2013-11-12 20:38:20

标签: oracle nested-table

我有类型:

CREATE OR REPLACE TYPE something AS OBJECT(
   name VARCHAR2(100),
   nestedObjects objects
);

对象类型为参考表

CREATE TYPE objects IS TABLE OF REF object;

对象是:

CREATE OR REPLACE TYPE object AS OBJECT (
   number NUMBER
);

然后我创建表:

CREATE TABLE tab_something OF something
   NESTED TABLE nestedObjects STORE AS tab_nestedObjects;

我希望从某些表格中包含的对象中选择数字,我试试:

SELECT ts.name, cursor(
   select deref(object).number 
   from TABLE(ts.nestedObjects) object
) FROM tab_something ts;

或:

SELECT DEREF(object).number 
FROM tab_something ts, TABLE(ts.nestedObjects) object;

但它不起作用。 Oracle称“对象”标识符无效。

当嵌套对象由对象组成时,它可以很好地工作,因为不需要处理引用。但是当它指向对象引用时它不起作用。何我可以处理它?<​​/ p>

感谢帮助!

1 个答案:

答案 0 :(得分:2)

好的我已经解决了:

SELECT DEREF(VALUE(object)).number 
FROM tab_something ts, TABLE(ts.nestedObjects) object;