プライマリ・コンテンツに移動
Oracle® Database PL/SQLパッケージおよびタイプ・リファレンス
12c リリース1 (12.1)
B71281-05
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

193 DBMS_XMLINDEX

DBMS_XMLINDEXパッケージでは、非同期の索引付けを実装するインタフェースが提供されています。


関連項目:

XMLIndexの詳細は、『Oracle XML DB開発者ガイド』を参照してください。

この章では、次の項目について説明します。

DBMS_XMLINDEXの使用方法

概要

非同期索引のメンテナンス

基本のXMLIndexは、すべてのDML操作でメンテナンスされます。ただし、計算のコストを考慮すると、多くの場合、失効した結果には十分な可用性があります。そのような場合、データベースのロードが少ないときなど、適切なときまで索引の更新を延期することが得策です。このようにして、非同期索引メンテナンスのメカニズムが提供されています。

セキュリティ・モデル

DBMS_XMLINDEXパッケージは、XDBが所有しているため、SYSまたはXDBによって作成される必要があります。EXECUTE権限は、PUBLICに付与されます。このパッケージ内のサブプログラムは、現行のユーザーの権限を使用して実行されます。

DBMS_XMLINDEXサブプログラムの要約

次の表に、このパッケージのサブプログラムをアルファベット順に示します。

表193-1 DBMS_XMLINDEXパッケージのサブプログラム

サブプログラム 説明

CREATEDATEINDEXプロシージャ


XMLIndexの記憶表であるPATH TABLEVALUE列に、日付値の2次索引を作成します。

CREATENUMBERINDEXプロシージャ


XMLIndexの記憶表であるPATH TABLEVALUE列に、数値の2次索引を作成します。

DROPPARAMETERプロシージャ


指定したパラメータ識別子に関連付けられているXMLIndexパラメータ文字列を削除します。

MODIFYPARAMETERプロシージャ


指定したパラメータ名に関連付けられているXMLIndexパラメータ文字列を変更します。

PROCESS_PENDINGプロシージャ


XMLIndexにあるNONBLOCKING ALTER INDEX OPERATIONの保留中の行を処理します。

REGISTERPARAMETERプロシージャ


パラメータ文字列とXMLIndexパラメータ文字列のペアをXDBに登録します。

SYNCINDEXプロシージャ


索引を手動で同期化します。


CREATEDATEINDEXプロシージャ

このプロシージャは、XMLIndexの記憶表であるPATH TABLEVALUE列に、日付値の2次索引を作成します。プロシージャの2番目の形式を使用すると、date_index_clauseを空の文字列に設定できます。

構文

DBMS_XMLINDEX.CREATEDATEINDEX  (
   xml_index_schema   IN   VARCHAR2,
   xml_index_name     IN   VARCHAR2,
   date_index_name    IN   VARCHAR2,
   xmltypename        IN   VARCHAR2,
   date_index_clause  IN   VARCHAR2);

DBMS_XMLINDEX.CREATEDATEINDEX  (
   xml_index_schema   IN   VARCHAR2
   xml_index_name     IN   VARCHAR2,
   date_index_name    IN   VARCHAR2,
   xmltypename        IN   VARCHAR2);

パラメータ

表193-2 CREATEDATEINDEXプロシージャのパラメータ

パラメータ 説明

xml_index_schema

XMLIndexの所有者の名前。

xml_index_name

XMLIndexの名前。

date_index_name

xml_index_schemaが所有するxml_index_nameという名前のXMLIndexPATH TABLEVALUE列に、日付値に対して作成される2次索引の名前。

xmltypename

パス表のVALUE列内の値が変換されるタイプ。指定可能な値の文字列は、DATETIMETIMEDATEGDAYGMONTHGYEARGYEARMONTHGMONTHDAYです。

date_index_clause

作成時に日付索引に適用するSTORAGE句。日付索引を作成するためにCREATE INDEX文に追加される文字列引数です。


CREATENUMBERINDEXプロシージャ

このプロシージャは、XMLIndexの記憶表であるPATH TABLEVALUE列に、数値の2次索引を作成します。

構文

DBMS_XMLINDEX.CREATENUMBERINDEX (
   xml_index_schema   IN   VARCHAR2,
   xml_index_name     IN   VARCHAR2,
   num_index_name     IN   VARCHAR2,
   num_index_clause   IN   VARCHAR2,
   xmltypename        IN   VARCHAR2);

パラメータ

表193-3 CREATENUMBERINDEXプロシージャのパラメータ

パラメータ 説明

xml_index_schema

XMLIndexの所有者の名前。

xml_index_name

XMLIndexの名前。

num_index_name

xml_index_schemaが所有するxml_index_nameという名前のXMLIndexPATH TABLEVALUE列に、数値に対して作成される2次索引の名前。

num_index_clause

作成時に数値索引に適用するSTORAGE句。数値索引を作成するためにCREATE INDEX文に追加される文字列引数です。

xmltypename

パス表のVALUE列内の値が変換されるタイプ。指定可能な値の文字列は、FLOATDOUBLEDECIMALINTEGERNONPOSITIVEINTEGERNEGATIVEINTEGERLONGINTSHORTBYTENONNEGATIVEINTEGERUNSIGNEDLONGUNSIGNEDINTUNSIGNEDSHORTUNSIGNEDBYTEPOSITIVEINTEGERです。


DROPPARAMETERプロシージャ

このプロシージャは、指定したパラメータ識別子に関連付けられているXMLIndexパラメータ文字列を削除します。

構文

DBMS_XMLINDEX.DROPPARAMETER (
   name        IN      VARCHAR2); 

パラメータ

表193-4 DROPPARAMETERプロシージャのパラメータ

パラメータ 説明

name

パラメータ文字列の識別子


DBMS_XMLINDEX.DROPPARAMETER ( 
   'myIndexParam');

MODIFYPARAMETERプロシージャ

このプロシージャは、指定したパラメータ識別子に関連付けられているXMLIndexパラメータ文字列を変更します。

構文

DBMS_XMLINDEX.MODIFYPARAMETER (
   name        IN      VARCHAR2, 
   parameter   IN      CLOB); 

パラメータ

表193-5 MODIFYPARAMETERプロシージャのパラメータ

パラメータ 説明

name

パラメータ文字列の識別子

parameter

CREATE INDEXまたはALTER INDEX文で使用可能なXMLIndexパラメータ句


DBMS_XMLINDEX.MODIFYPARAMETER ( 
   'myIndexParam', 
   'PATH TABLE po_ptab 
    PATH ID INDEX po_pidx 
    ORDER KEY INDEX po_oidx 
    VALUE INDEX po_vidx');

PROCESS_PENDINGプロシージャ

このプロシージャのプロセスは、XMLIndexでのNONBLOCKING ALTER INDEX ADD_GROUP/ADD_COLUMN操作の完了に必要なDMLを実行します。

構文

DBMS_XMLINDEX.PROCESS_PENDING (
   xml_index_schema    IN     VARCHAR2,
   xml_index_name      IN     VARCHAR2,
   pending_row_count   OUT    BINARY_INTEGER,
   error_row_count     OUT    BINARY_INTEGER);

パラメータ

表193-6 PROCESS_PENDINGプロシージャのパラメータ

パラメータ 説明

xml_index_schema

XMLIndexの所有者の名前。

xml_index_name

NONBLOCKING ALTER INDEX OPERATIONを使用して変更されるXMLIndexの名前。

pending_row_count

処理される保留中の行数。

error_row_count

エラーのために索引付けが失敗した可能性のある行数。


使用上の注意

  • このプロシージャは、ロックされた行とエラーのために索引メンテナンスが失敗した行をスキップしながら、必要なすべての行の索引付けを小さいバッチで繰り返し試行します。したがって、保留中の行がすべて処理されるまで、XMLIndexに対して複数回実行する必要がある場合があります。保留中の行がすべて処理されたら、NONBLOCKING ALTER INDEX OPERATIONを完了できます。

  • 何度か試みた後でも保留中のすべての行が処理できない場合は、SYS_AIXSXI_######_PENDINGTABで未処理の行を調べた後、SYS_AIXSXI_#####_ERRORTABでエラーを確認して、ロックおよびエラーの問題を手動でトリアージする必要があります。行とエラーを追跡しておくと、問題のトリアージを行う場合に役立ちます。

EXEC DBMS_XMLINDEX.PROCESS_PENDING(
   'SCOTT', 'PO_XMLINDEX_IX', out_param1, out_param2);

REGISTERPARAMETERプロシージャ

このプロシージャは、パラメータ識別子とXMLIndexパラメータ文字列のペアをXDBに登録します。

構文

DBMS_XMLINDEX.REGISTERPARAMETER (
   name        IN      VARCHAR2, 
   parameter   IN      CLOB); 

パラメータ

表193-7 REGISTERPARAMETERプロシージャのパラメータ

パラメータ 説明

name

パラメータ文字列の識別子

parameter

CREATE INDEXまたはALTER INDEX文で使用可能なXMLIndexパラメータ句


DBMS_XMLINDEX.REGISTERPARAMETER ( 
   'myIndexParam', 
   'PATH TABLE po_ptab 
    PATH ID INDEX po_pidx 
    ORDER KEY INDEX po_oidx 
    VALUE INDEX po_vidx 
    PATHS(NAMESPACE MAPPING(xmlns:p="http://www.example.com/IPO")) 
    GROUP MASTERGROUP XMLTABLE PO_TAB 
    (''/p:PurchaseOrder'' 
        COLUMNS 
           REFERENCE VARCHAR2(30) PATH ''p:Reference'', 
           REQUESTOR VARCHAR2(30) PATH ''p:Requestor'' ) 
    GROUP ITEMGROUP XMLTABLE ITEMGROUP_TAB     
    (''/p:PurchaseOrder/p:LineItems/p:LineItem'' 
        COLUMNS 
           LINENUMBER NUMBER(38) PATH ''@p:ItemNumber'', 
           QUANTITY NUMBER(38) PATH ''@p:Quantity'', 
           DESCRIPTION VARCHAR2(256) PATH ''p:Description'''));

SYNCINDEXプロシージャ

このファンクションは、非同期にメンテナンスされたXMLIndexを同期化します。これは、保留中の表に記録されるXMLIndex変更に適用され、ベースXMLTYPE列を含むパス表を最新にします。

構文

DBMS_XMLINDEX.SYNCINDEX (
   xml_index_schema      IN VARCHAR2,
   xml_index_name        IN VARCHAR2,
   partition_name        IN VARCHAR2 DEFAULT NULL,
   reindex               IN BOOLEAN DEFAULT FALSE);

パラメータ

表193-8 SYNCINDEXプロシージャのパラメータ

パラメータ 説明

xml_index_schema

XMLIndexの所有者の名前。

xml_schema_name

XMLIndexの名前。

partition_name

現在サポートされていません。

reindex

デフォルトはFALSEです。TRUEに設定した場合は、2次索引が削除され、バルクロードできるように後で再作成されます。


EXEC DBMS_XMLINDEX.SYNCINDEX('USER1', 'SS_TAB_XMLI', REINDEX=>TRUE);