Как я могу определить тип в oracle11g, который ссылается на коллекцию этого типа? - PullRequest
4 голосов
/ 28 июня 2009

Я хочу сделать что-то подобное

create type Item as object (
    id number,
    subitems table of ref Item
)

но оракул выдает исключение, когда я пытаюсь это сделать. Возможно ли это, и если да, то как?

Ответы [ 2 ]

8 голосов
/ 28 июня 2009

Oracle не скомпилирует ваше определение, потому что тип Item еще не скомпилирован. Почему бы вам не попробовать?

Скомпилируйте это:

CREATE OR REPLACE TYPE Item;

CREATE OR REPLACE TYPE items_table IS TABLE OF REF item;

, а затем попробуйте:

CREATE OR REPLACE TYPE item AS OBJECT (
   id number,
   subitems items_table
)
0 голосов
/ 28 июня 2009

Это было бы хорошо, не так ли? Вы можете попробовать это:

create type item_ids_t is table of number;

create type Item as object (
   id number,
   subitems item_ids_t);

Это означает, что подэлементы - это просто список идентификаторов, который затем будет использоваться для поиска таблицы, индексированной по идентификатору.

...