Как выбрать столбцы из вложенной таблицы, указывающие на ссылки на объекты

У меня есть тип:

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;

or:

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

но это не работает. Oracle говорит, что идентификатор объекта недействителен.

Когда nestedObject состоит из объектов, он работает хорошо, потому что нет необходимости иметь дело со ссылками. но когда он указывает на объектные ссылки, он не работает. Как я могу с этим справиться?

СПАСИБО ЗА ПОМОЩЬ!


person tgrabus    schedule 12.11.2013    source источник


Ответы (1)


Хорошо, я решил:

SELECT DEREF(VALUE(object)).number 
FROM tab_something ts, TABLE(ts.nestedObjects) object;
person tgrabus    schedule 12.11.2013