218 DBMS_XMLSTORE
DBMS_XMLSTOREは、リレーショナル表内にXMLデータを格納する機能を提供します。
               
この章の構成は、次のとおりです。
218.1 DBMS_XMLSTOREのセキュリティ・モデル
DBMS_XMLSTOREパッケージは、XDBが所有しているため、SYSまたはXDBによって作成される必要があります。EXECUTE権限は、PUBLICに付与されます。このパッケージ内のサブプログラムは、現行のユーザーの権限を使用して実行されます。
                  
218.2 タイプ
DBMS_XMLSTOREサブプログラムは、ctxTypeタイプを使用します。
                  
表218-1 DBMS_XMLSTOREのタイプ
| タイプ | 説明 | 
|---|---|
| 
                                  
  | 
                              
                                  問合せコンテキスト・ハンドルのタイプ。NEWCONTEXTの戻りタイプです。  | 
                           
218.3 DBMS_XMLSTOREサブプログラムの要約
この表は、DBMS_XMLSTOREサブプログラムを示し、簡単に説明しています。
                  
表218-2 DBMS_XMLSTOREパッケージのサブプログラム
| メソッド | 説明 | 
|---|---|
| 
                                  キー列リストをクリアします。  | 
                           |
| 
                                  更新列リストをクリアします。  | 
                           |
| 
                                  特定の保存コンテキストのクローズまたは割当て解除を行います。  | 
                           |
| 
                                  XML文書のデータで指定したレコードを、コンテキスト作成時に指定した表から削除します。  | 
                           |
| 
                                  コンテキストの作成時に指定した表にXML文書を挿入します。  | 
                           |
| 
                                  保存コンテキストを作成し、コンテキスト・ハンドルを戻します。  | 
                           |
| 
                                  このメソッドは、キー列リストに列を追加します。  | 
                           |
| 
                                  XML文書で使用されたタグに名前を付け、データベースに対応するXML要素を囲みます。  | 
                           |
| 
                                  更新列リストに列を追加します。  | 
                           |
| 
                                  XML文書を指定して、表を更新します。  | 
                           
218.3.1 CLEARKEYCOLUMNLIST
このプロシージャは、キー列リストをクリアします。
構文
PROCEDURE clearKeyColumnList( ctxHdl IN ctxType);
表218-3 CLEARKEYCOLUMNLISTプロシージャのパラメータ
| パラメータ | IN / OUT | 説明 | 
|---|---|---|
| 
                                     
  | 
                                 
                                     
  | 
                                 
                                     コンテキスト・ハンドル。  | 
                              
218.3.2 CLEARUPDATECOLUMNLIST
このプロシージャは、更新列リストをクリアします。
構文
PROCEDURE clearUpdateColumnList( ctxHdl IN ctxType);
表218-4 CLEARUPDATECOLUMNLISTプロシージャのパラメータ
| パラメータ | IN / OUT | 説明 | 
|---|---|---|
| 
                                     
  | 
                                 
                                     
  | 
                                 
                                     コンテキスト・ハンドル。  | 
                              
218.3.3 CLOSECONTEXT
このプロシージャは、特定の保存コンテキストのクローズまたは割当て解除を行います。
構文
PROCEDURE closeContext(ctxHdl IN ctxType);
表218-5 CLOSECONTEXTプロシージャのパラメータ
| パラメータ | IN / OUT | 説明 | 
|---|---|---|
| 
                                     
  | 
                                 
                                     
  | 
                                 
                                     コンテキスト・ハンドル。  | 
                              
218.3.4 DELETEXML
DELETEXMLは、XML文書のデータで指定したレコードを、コンテキスト作成時に指定した表から削除し、削除した行数を戻します。
                     
構文
次の構文では、xDocパラメータにVARCHAR2タイプを使用しています。
                        
FUNCTION deleteXML(
  ctxHdl IN ctxPType,
  xDoc IN VARCHAR2)
RETURN NUMBER;次の構文では、xDocパラメータにCLOBタイプを使用しています。
                        
FUNCTION deleteXML(
  ctxHdl IN ctxType,    
  xDoc IN CLOB)
RETURN NUMBER;次の構文では、xDocパラメータにXMLTypeタイプを使用しています。
                        
FUNCTION deleteXML(
  ctxHdl IN ctxType,    
  xDoc IN XMLType)
RETURN NUMBER;パラメータ
表218-6 DELETEXMLファンクションのパラメータ
| パラメータ | IN / OUT | 説明 | 
|---|---|---|
| 
                                        
  | 
                                    
                                        
  | 
                                    
                                        コンテキスト・ハンドル。  | 
                                 
| 
                                        
  | 
                                    
                                        
  | 
                                    
                                        XML文書を含む文字列。  | 
                                 
218.3.5 INSERTXML
コンテキストの作成時に指定した表にXML文書を挿入し、挿入された行数を戻します。
ユーザーが、追加要素(表のいずれの列にも一致しない要素)を含むDBMS_XMLSTOREにinsertXMLのXMLファイルを渡した場合、OracleはSETUPDATECOLUMNが使用されていないかぎり、それらの列への挿入を試みることに注意してください。XMLファイル内の要素が表内の列と一致する場合にのみ、setUpdateColumnを使用できます。
                        
構文
FUNCTION insertXML(
  ctxHdl IN ctxType,    
  xDoc IN VARCHAR2)
RETURN NUMBER;FUNCTION insertXML(
  ctxHdl IN ctxType,
  xDoc IN CLOB)
RETURN NUMBER;FUNCTION insertXML(
  ctxHdl IN ctxType,
  xDoc IN XMLType)
RETURN NUMBER;パラメータ
表218-7 INSERTXMLファンクションのパラメータ
| パラメータ | IN / OUT | 説明 | 
|---|---|---|
| 
                                        
  | 
                                    
                                        
  | 
                                    
                                        コンテキスト・ハンドル。  | 
                                 
| 
                                        
  | 
                                    
                                        
  | 
                                    
                                        XML文書を含む文字列。  | 
                                 
218.3.6 NEWCONTEXT
NEWCONTEXTは、保存コンテキストを作成し、コンテキスト・ハンドルを戻します。 
                     
構文
FUNCTION newContext( targetTable IN VARCHAR2) RETURN ctxType;
表218-8 NEWCONTEXTファンクションのパラメータ
| パラメータ | IN / OUT | 説明 | 
|---|---|---|
| 
                                     
  | 
                                 
                                     
  | 
                                 
                                     XML文書のロード先となる表。  | 
                              
218.3.7 SETKEYCOLUMN
このメソッドは、「キー列リスト」に列を追加します。
列の値をNULLにはできません。更新または削除の場合、キー列リストの列が文のWHERE句を構成します。更新を実行するには、キー列リストを先に指定する必要がありますが、削除操作においては、これはオプションです。
                        
構文
PROCEDURE setKeyColumn( ctxHdl IN ctxType, colName IN VARCHAR2);
表218-9 SETKEYCOLUMNプロシージャのパラメータ
| パラメータ | IN / OUT | 説明 | 
|---|---|---|
| 
                                     
  | 
                                 
                                     
  | 
                                 
                                     コンテキスト・ハンドル。  | 
                              
| 
                                     
  | 
                                 
                                     
  | 
                                 
                                     キー列リストに追加される列。  | 
                              
218.3.8 SETROWTAG
このプロシージャは、XML文書で使用されたタグに名前を付け、データベース・レコードに対応するXML要素を囲みます。
構文
PROCEDURE setRowTag( ctxHdl IN ctxType, tag IN VARCHAR2);
表218-10 SETROWTAGプロシージャのパラメータ
| パラメータ | IN / OUT | 説明 | 
|---|---|---|
| 
                                     
  | 
                                 
                                     
  | 
                                 
                                     コンテキスト・ハンドル。  | 
                              
| 
                                     
  | 
                                 
                                     
  | 
                                 
                                     タグ名。  | 
                              
218.3.9 SETUPDATECOLUMN
SETUPDATECOLUMNは、更新列リストに列を追加します。 
                     
挿入の場合、デフォルトでは、表内のすべての列に値を挿入します。更新の場合、デフォルトでは、XML文書のROW要素内に存在するタグに対応する列のみを更新します。更新列リストが指定されている場合、このリストに含まれる列のみが更新または挿入の対象となります。
                        
ユーザーが、追加要素(表のいずれの列にも一致しない要素)を含むDBMS_XMLSTOREにINSERTXMLのXMLファイルを渡した場合、Oracleは、setUpdateColumnが使用されていないかぎり、それらの列への挿入を試みることに注意してください。XMLファイル内の要素が表内の列と一致する場合にのみ、setUpdateColumnを使用できます。
                        
構文
PROCEDURE setUpdateColumn( ctxHdl IN ctxType, colName IN VARCHAR2);
表218-11 SETUPDATECOLUMNプロシージャのパラメータ
| パラメータ | IN / OUT | 説明 | 
|---|---|---|
| 
                                     
  | 
                                 
                                     
  | 
                                 
                                     コンテキスト・ハンドル。  | 
                              
| 
                                     
  | 
                                 
                                     
  | 
                                 
                                     更新列リストに追加される列。  | 
                              
218.3.10 UPDATEXML
コンテキストの作成時に指定した表をXML文書のデータで更新し、更新された行数を戻します。
指定できるオプションは、次の表のとおりです。
構文
次の構文では、xDocパラメータをVARCHAR2として渡しています。
                        
FUNCTION updateXML(
  ctxHdl IN ctxType,
  xDoc IN VARCHAR2)
RETURN NUMBER;次の構文では、xDocパラメータをCLOBとして渡しています。
                        
FUNCTION updateXML(
  ctxHdl IN ctxType,
  xDoc IN CLOB)
RETURN NUMBER;次の構文では、xDocパラメータをXMLTypeとして渡しています。
                        
FUNCTION updateXML(
  ctxHdl IN ctxType,
  xDoc IN XMLType)
RETURN NUMBER;パラメータ
表218-12 UPDATEXMLファンクションのパラメータ
| パラメータ | IN / OUT | 説明 | 
|---|---|---|
| 
                                        
  | 
                                    
                                        
  | 
                                    
                                        コンテキスト・ハンドル。  | 
                                 
| 
                                        
  | 
                                    
                                        
  | 
                                    
                                        XML文書を含む文字列。  |