Search code examples
databaseoracle-databaseobject-relational-model

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


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?


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
    )