2009-06-28 4 views
4

私はこのoracle11gで、そのタイプのコレクションを参照する型を定義するにはどうすればよいですか?

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

のような何かをしたいが、私はそれを行うにしようとすると、Oracleは例外をスローします。これは可能ですか?はいの場合はどうですか?

+0

何が例外ですか? – akf

+0

PLS-00103:以下のいずれかを予期しているとき、シンボル "TABLE"が検出されました:<識別子>二重引用符で囲まれた区切り記号付きの修飾子長い二重参照文字の時刻タイムスタンプの間隔日付二進国語文字nchar – pablochan

答えて

8

タイプItemがまだコンパイルされていないため、Oracleは定義をコンパイルしません。なぜあなたはこれを試してみていけない:

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

はそれではないだろう

はこれをコンパイル!あなたはこれを試みることができる:

create type item_ids_t is table of number; 

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

サブ項目がちょうどそのIDによってインデックス付けテーブルを検索するために使用されるIDのリストであることを意味します。

関連する問題