2016-10-16 5 views
0
CREATE TYPE nums_list AS TABLE OF NUMBER; 

    CREATE TABLE mytest (
     id NUMBER, 
     num NUMBER, 
     tagged nums_list 
    ) 
    NESTED TABLE tagged STORE AS mytest_tagged_table; 

これで、ネストした表の列taggedに索引を作成する必要があります。ネストした表の列に索引を作成する

のでdocumentationによると、構文は次のようである:私は2番目のパラメータdocument_typを意味するもの得ることはありません

CREATE INDEX index_name 
ON nested_storage_table(NESTED_TABLE_ID, document_typ); 

?これについての説明は見つかりませんでした。

何か助けていただければ幸いです。

答えて

1

これは、Oracleのマニュアルが同期していないという興味深い例です。インデックスの例には、型の定義を含める必要があります。しかし、これらの例はthe PL/SQL referenceで見つけることができます。そうPRINT_MEDIA.AD_TEXTDOCS_NTABこのシグネチャを有する型TEXTDOC_TABである:そう

CREATE TYPE textdoc_typ AS OBJECT 
    (document_typ  VARCHAR2(32) 
    , formatted_doc  BLOB 
    ) ; 

CREATE TYPE textdoc_tab AS TABLE OF textdoc_typ; 

document_typはユーザ定義型のメタデータ列のいくつかの形式です。コレクション型を定義した方法のために、この列に相当するものはありません。インデックスを付ける列はありません。

なぜネストしたテーブルを使用しているのか、それにインデックスが必要と思われる理由を理解することなく、決定的な解決策を提示することは難しいです。しかし、これはあなたに合うかもしれません:

CREATE OR REPLACE TYPE num_t AS OBJECT (numcol NUMBER); 

CREATE OR REPLACE TYPE nums_list AS TABLE OF num_t; 

あなたは、あなたのテーブルのネストされたストレージにインデックスを構築することができます

CREATE INDEX index_name 
    ON nested_storage_table(NESTED_TABLE_ID, numcol); 
関連する問題