198 DBMS_XMLINDEX
DBMS_XMLINDEXパッケージは、非同期の索引付けを実装するインタフェースを提供します。
               
この章のトピックは、次のとおりです:
参照:
XMLIndexの詳細は、『Oracle XML DB開発者ガイド』を参照してください。
198.1 DBMS_XMLINDEXの概要
DBMS_XMLINDEXは、非同期の索引メンテナンスのメカニズムを提供します。
                  
非同期索引のメンテナンス
基本のXMLIndexは、すべてのDML操作でメンテナンスされます。ただし、計算のコストを考慮すると、多くの場合、失効した結果には十分な可用性があります。そのような場合、データベースのロードが少ないときなど、より適切なときまで索引の更新を延期することが得策です。DBMS_XMLINDEXは、このメカニズムを提供します。 
                     
198.2 DBMS_XMLINDEXのセキュリティ・モデル
DBMS_XMLINDEXパッケージは、XDBが所有しているため、SYSまたはXDBによって作成される必要があります。EXECUTE権限は、PUBLICに付与されます。 
                  
このパッケージ内のサブプログラムは、現行のユーザーの権限を使用して実行されます。
198.3 DBMS_XMLINDEXサブプログラムの要約
この表は、DBMS_XMLINDEXサブプログラムを示し、簡単に説明しています。
                  
表198-1 DBMS_XMLINDEXパッケージのサブプログラム
| サブプログラム | 説明 | 
|---|---|
| 
                                  
  | 
                           |
| 
                                  
  | 
                           |
| 
                                  指定したパラメータ識別子に関連付けられている  | 
                           |
| 
                                  指定したパラメータ名に関連付けられている  | 
                           |
| 
                                  
  | 
                           |
| 
                                  パラメータ文字列と  | 
                           |
| 
                                  索引を手動で同期化します。  | 
                           
198.3.1 CREATEDATEINDEXプロシージャ
このプロシージャは、XMLIndexの記憶表であるPATH TABLEのVALUE列に、日付値の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);
パラメータ
表198-2 CREATEDATEINDEXプロシージャのパラメータ
| パラメータ | 説明 | 
|---|---|
| 
                                        
  | 
                                    
                                        
  | 
                                 
| 
                                        
  | 
                                    
                                        
  | 
                                 
| 
                                        
  | 
                                    
                                        
  | 
                                 
| 
                                        
  | 
                                    
                                        パス表の  | 
                                 
| 
                                        
  | 
                                    
                                        作成時に日付索引に適用するSTORAGE句。日付索引を作成するために  | 
                                 
198.3.2 CREATENUMBERINDEXプロシージャ
このプロシージャは、XMLIndexの記憶表であるPATH TABLEのVALUE列に、数値の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);
パラメータ
表198-3 CREATENUMBERINDEXプロシージャのパラメータ
| パラメータ | 説明 | 
|---|---|
| 
                                        
  | 
                                    
                                        
  | 
                                 
| 
                                        
  | 
                                    
                                        
  | 
                                 
| 
                                        
  | 
                                    
                                        
  | 
                                 
| 
                                        
  | 
                                    
                                        作成時に数値索引に適用するSTORAGE句。数値索引を作成するために  | 
                                 
| 
                                        
  | 
                                    
                                        パス表の  | 
                                 
198.3.3 DROPPARAMETERプロシージャ
このプロシージャは、指定したパラメータ識別子に関連付けられているXMLIndexパラメータ文字列を削除します。
                     
構文
DBMS_XMLINDEX.DROPPARAMETER ( name IN VARCHAR2);
パラメータ
表198-4 DROPPARAMETERプロシージャのパラメータ
| パラメータ | 説明 | 
|---|---|
| 
                                        
  | 
                                    
                                        パラメータ文字列の識別子  | 
                                 
例
DBMS_XMLINDEX.DROPPARAMETER ( 'myIndexParam');
198.3.4 MODIFYPARAMETERプロシージャ
このプロシージャは、指定したパラメータ識別子に関連付けられているXMLIndexパラメータ文字列を変更します。
                     
構文
DBMS_XMLINDEX.MODIFYPARAMETER ( name IN VARCHAR2, parameter IN CLOB);
パラメータ
表198-5 MODIFYPARAMETERプロシージャのパラメータ
| パラメータ | 説明 | 
|---|---|
| 
                                        
  | 
                                    
                                        パラメータ文字列の識別子  | 
                                 
| 
                                        
  | 
                                    
                                        
  | 
                                 
例
DBMS_XMLINDEX.MODIFYPARAMETER ( 
   'myIndexParam', 
   'PATH TABLE po_ptab 
    PATH ID INDEX po_pidx 
    ORDER KEY INDEX po_oidx 
    VALUE INDEX po_vidx');198.3.5 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);
パラメータ
表198-6 PROCESS_PENDINGプロシージャのパラメータ
| パラメータ | 説明 | 
|---|---|
| 
                                        
  | 
                                    
                                        
  | 
                                 
| 
                                        
  | 
                                    
                                        
  | 
                                 
| 
                                        
  | 
                                    
                                        処理される保留中の行数。  | 
                                 
| 
                                        
  | 
                                    
                                        エラーのために索引付けが失敗した可能性のある行数。  | 
                                 
使用上のノート
- 
                              
このプロシージャは、ロックされた行とエラーのために索引メンテナンスが失敗した行をスキップしながら、必要なすべての行の索引付けを小さいバッチで繰り返し試行します。したがって、保留中の行がすべて処理されるまで、XMLIndexに対して複数回実行する必要がある場合があります。保留中の行がすべて処理されたら、
NONBLOCKINGALTERINDEXOPERATIONを完了できます。 - 
                              
何度か試みた後でも保留中のすべての行が処理できない場合は、
SYS_AIXSXI_######_PENDINGTABで未処理の行を調べた後、SYS_AIXSXI_#####_ERRORTABでエラーを確認して、ロックおよびエラーの問題を手動でトリアージする必要があります。行とエラーを追跡しておくと、問題のトリアージを行う場合に役立ちます。 
例
EXEC DBMS_XMLINDEX.PROCESS_PENDING( 'SCOTT', 'PO_XMLINDEX_IX', out_param1, out_param2);
198.3.6 REGISTERPARAMETERプロシージャ
このプロシージャは、パラメータ識別子とXMLIndexパラメータ文字列のペアをXDBに登録します。
                     
構文
DBMS_XMLINDEX.REGISTERPARAMETER ( name IN VARCHAR2, parameter IN CLOB);
パラメータ
表198-7 REGISTERPARAMETERプロシージャのパラメータ
| パラメータ | 説明 | 
|---|---|
| 
                                        
  | 
                                    
                                        パラメータ文字列の識別子  | 
                                 
| 
                                        
  | 
                                    
                                        
  | 
                                 
例
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'''));198.3.7 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);
パラメータ
表198-8 SYNCINDEXプロシージャのパラメータ
| パラメータ | 説明 | 
|---|---|
| 
                                        
  | 
                                    
                                        XMLIndexの所有者の名前。  | 
                                 
| 
                                        
  | 
                                    
                                        XMLIndexの名前。  | 
                                 
| 
                                        
  | 
                                    
                                        現在サポートされていません。  | 
                                 
| 
                                        
  | 
                                    
                                        デフォルトは  | 
                                 
例
EXEC DBMS_XMLINDEX.SYNCINDEX('USER1', 'SS_TAB_XMLI', REINDEX=>TRUE);