我有类型:
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>
感谢帮助!
答案 0 :(得分:2)
好的我已经解决了:
SELECT DEREF(VALUE(object)).number
FROM tab_something ts, TABLE(ts.nestedObjects) object;