227 DBMS_XMLSTORE
DBMS_XMLSTORE
は、リレーショナル表内にXMLデータを格納する機能を提供します。
ノート:
PL/SQLパッケージDBMS_XMLSTORE
は、Oracle Database 23cで非推奨になりました。
DBMS_XMLSTORE
は、Oracle DatabaseでXMLデータを格納および操作できる非標準のOracle独自のパッケージです。このパッケージは非推奨で、今後のリリースでサポートされなくなる可能性があります。Oracleでは、通常のSQL DMLを使用し、標準のXQueryおよびSQL/XMLを使用してXMLデータを格納および管理することをお薦めします。標準機能を使用すると、XMLデータを格納および操作するための将来的にも有効な方法が提供されます。
この章の構成は、次のとおりです。
227.1 DBMS_XMLSTOREのセキュリティ・モデル
DBMS_XMLSTORE
パッケージは、XDB
が所有しているため、SYS
またはXDB
によって作成される必要があります。EXECUTE
権限は、PUBLIC
に付与されます。このパッケージ内のサブプログラムは、現行のユーザーの権限を使用して実行されます。
227.2 タイプ
DBMS_XMLSTORE
サブプログラムは、ctxType
タイプを使用します。
表227-1 DBMS_XMLSTOREのタイプ
タイプ | 説明 |
---|---|
|
問合せコンテキスト・ハンドルのタイプ。NEWCONTEXTの戻りタイプです。 |
227.3 DBMS_XMLSTOREサブプログラムの要約
この表は、DBMS_XMLSTORE
サブプログラムを示し、簡単に説明しています。
表227-2 DBMS_XMLSTOREパッケージのサブプログラム
メソッド | 説明 |
---|---|
キー列リストをクリアします。 |
|
更新列リストをクリアします。 |
|
特定の保存コンテキストのクローズまたは割当て解除を行います。 |
|
XML文書のデータで指定したレコードを、コンテキスト作成時に指定した表から削除します。 |
|
コンテキストの作成時に指定した表にXML文書を挿入します。 |
|
保存コンテキストを作成し、コンテキスト・ハンドルを戻します。 |
|
このメソッドは、キー列リストに列を追加します。 |
|
XML文書で使用されたタグに名前を付け、データベースに対応するXML要素を囲みます。 |
|
更新列リストに列を追加します。 |
|
XML文書を指定して、表を更新します。 |
227.3.1 CLEARKEYCOLUMNLIST
このプロシージャは、キー列リストをクリアします。
構文
PROCEDURE clearKeyColumnList( ctxHdl IN ctxType);
表227-3 CLEARKEYCOLUMNLISTプロシージャのパラメータ
パラメータ | IN / OUT | 説明 |
---|---|---|
|
|
コンテキスト・ハンドル。 |
227.3.2 CLEARUPDATECOLUMNLIST
このプロシージャは、更新列リストをクリアします。
構文
PROCEDURE clearUpdateColumnList( ctxHdl IN ctxType);
表227-4 CLEARUPDATECOLUMNLISTプロシージャのパラメータ
パラメータ | IN / OUT | 説明 |
---|---|---|
|
|
コンテキスト・ハンドル。 |
227.3.3 CLOSECONTEXT
このプロシージャは、特定の保存コンテキストのクローズまたは割当て解除を行います。
構文
PROCEDURE closeContext(ctxHdl IN ctxType);
表227-5 CLOSECONTEXTプロシージャのパラメータ
パラメータ | IN / OUT | 説明 |
---|---|---|
|
|
コンテキスト・ハンドル。 |
227.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;
パラメータ
表227-6 DELETEXMLファンクションのパラメータ
パラメータ | IN / OUT | 説明 |
---|---|---|
|
|
コンテキスト・ハンドル。 |
|
|
XML文書を含む文字列。 |
227.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;
パラメータ
表227-7 INSERTXMLファンクションのパラメータ
パラメータ | IN / OUT | 説明 |
---|---|---|
|
|
コンテキスト・ハンドル。 |
|
|
XML文書を含む文字列。 |
227.3.6 NEWCONTEXT
NEWCONTEXT
は、保存コンテキストを作成し、コンテキスト・ハンドルを戻します。
構文
FUNCTION newContext( targetTable IN VARCHAR2) RETURN ctxType;
表227-8 NEWCONTEXTファンクションのパラメータ
パラメータ | IN / OUT | 説明 |
---|---|---|
|
|
XML文書のロード先となる表。 |
227.3.7 SETKEYCOLUMN
このメソッドは、「キー列リスト」に列を追加します。
列の値をNULL
にはできません。更新または削除の場合、キー列リストの列が文のWHERE
句を構成します。更新を実行するには、キー列リストを先に指定する必要がありますが、削除操作においては、これはオプションです。
構文
PROCEDURE setKeyColumn( ctxHdl IN ctxType, colName IN VARCHAR2);
表227-9 SETKEYCOLUMNプロシージャのパラメータ
パラメータ | IN / OUT | 説明 |
---|---|---|
|
|
コンテキスト・ハンドル。 |
|
|
キー列リストに追加される列。 |
227.3.8 SETROWTAG
このプロシージャは、XML文書で使用されたタグに名前を付け、データベース・レコードに対応するXML要素を囲みます。
構文
PROCEDURE setRowTag( ctxHdl IN ctxType, tag IN VARCHAR2);
表227-10 SETROWTAGプロシージャのパラメータ
パラメータ | IN / OUT | 説明 |
---|---|---|
|
|
コンテキスト・ハンドル。 |
|
|
タグ名。 |
227.3.9 SETUPDATECOLUMN
SETUPDATECOLUMN
は、更新列リストに列を追加します。
挿入の場合、デフォルトでは、表内のすべての列に値を挿入します。更新の場合、デフォルトでは、XML文書のROW
要素内に存在するタグに対応する列のみを更新します。更新列リストが指定されている場合、このリストに含まれる列のみが更新または挿入の対象となります。
ユーザーが、追加要素(表のいずれの列にも一致しない要素)を含むDBMS_XMLSTORE
にINSERTXMLのXMLファイルを渡した場合、Oracleは、setUpdateColumnが使用されていないかぎり、それらの列への挿入を試みることに注意してください。XMLファイル内の要素が表内の列と一致する場合にのみ、setUpdateColumnを使用できます。
構文
PROCEDURE setUpdateColumn( ctxHdl IN ctxType, colName IN VARCHAR2);
表227-11 SETUPDATECOLUMNプロシージャのパラメータ
パラメータ | IN / OUT | 説明 |
---|---|---|
|
|
コンテキスト・ハンドル。 |
|
|
更新列リストに追加される列。 |
227.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;
パラメータ
表227-12 UPDATEXMLファンクションのパラメータ
パラメータ | IN / OUT | 説明 |
---|---|---|
|
|
コンテキスト・ハンドル。 |
|
|
XML文書を含む文字列。 |