How can I define a type in oracle11g that references a collection of that type?

database, object-relational-model, oracle

Solution

Oracle will not compile your definition because the type `Item` hasn't been compiled yet. Why dont you give this a try:

Compile this:

CREATE OR REPLACE TYPE Item;

CREATE OR REPLACE TYPE items_table IS TABLE OF REF item;

and then try:

CREATE OR REPLACE TYPE item AS OBJECT (
   id number,
   subitems items_table
)

Problem

I want to do something like this ``` create type Item as object ( id number, subitems table of ref Item ) ``` but oracle throws an exception when I try to do it. Is this possible, and if yes then how?

Original source