DBMS_XMLSAVE
は、XMLからデータベース・タイプへの変換の機能を提供します。
関連項目: 『Oracle XML DB開発者ガイド』 |
この章では、次の項目について説明します。
セキュリティ・モデル
定数
タイプ
DBMS_XMLSAVE
パッケージは、XDB
が所有しているため、SYS
またはXDB
によって作成される必要があります。EXECUTE
権限は、PUBLIC
に付与されます。このパッケージ内のサブプログラムは、現行のユーザーの権限を使用して実行されます。
表196-3 DBMS_XMLSAVEパッケージのサブプログラム
メソッド | 説明 |
---|---|
|
キー列リストをクリアします。 |
|
更新列リストをクリアします。 |
|
特定の保存コンテキストのクローズまたは割当て解除を行います。 |
|
XML文書のデータで指定したレコードを、コンテキスト作成時に指定した表から削除します。 |
|
スローされた例外のエラー・コードおよびエラー・メッセージを戻します。 |
|
コンテキストの作成時に指定した表にXML文書を挿入します。 |
|
保存コンテキストを作成し、コンテキスト・ハンドルを戻します。 |
|
例外が発生してスローされる場合、 |
|
トップレベルのスタイルシート・パラメータの値を削除します。 |
|
DMLの操作中に使用されたバッチ・サイズを変更します。 |
|
コミットするバッチ・サイズを設定します。 |
|
XML文書で生成された日付の書式を設定します。 |
|
XSUがXML要素をデータベースにマップします。 |
|
このメソッドは、キー列リストに列を追加します。 |
|
空白を保持するかどうかをXSUに指示します。 |
|
XML文書で使用されたタグに名前を付け、データベースに対応するXML要素を囲みます。 |
|
XML識別子にマップされたSQLオブジェクト名が有効なXML識別子でない場合、XMLタグのエスケープをオンまたはオフにします。 |
|
更新列リストに列を追加します。 |
|
保存するXMLに適用するXSL変換を登録します。 |
|
トップレベルのスタイルシート・パラメータの値を設定します。 |
|
XML文書を指定して、表を更新します。 |
キー列リストをクリアします。
構文
PROCEDURE clearKeyColumnList( ctxHdl IN ctxType);
パラメータ | IN / OUT | 説明 |
---|---|---|
ctxHdl |
(IN) |
コンテキスト・ハンドル。 |
更新列リストをクリアします。
構文
PROCEDURE clearUpdateColumnList( ctxHdl IN ctxType);
パラメータ | IN / OUT | 説明 |
---|---|---|
ctxHdl |
(IN) |
コンテキスト・ハンドル。 |
特定の保存コンテキストのクローズまたは割当て解除を行います。
構文
PROCEDURE closeContext( ctxHdl IN ctxType);
パラメータ | IN / OUT | 説明 |
---|---|---|
ctxHdl |
(IN) |
コンテキスト・ハンドル。 |
XML文書のデータで指定したレコードを、コンテキスト作成時に指定した表から削除し、削除した行数を戻します。指定できるオプションは、次の表のとおりです。
構文 | 説明 |
---|---|
FUNCTION deleteXML(
|
xDoc パラメータにVARCHAR2 タイプを使用します。 |
FUNCTION deleteXML(
|
xDoc パラメータにCLOB タイプを使用します。 |
パラメータ | IN / OUT | 説明 |
---|---|---|
ctxHdl |
(IN) |
コンテキスト・ハンドル。 |
xDoc |
(IN) |
XML文書を含む文字列。 |
このメソッドは、引数を使用して、スローした例外のエラー・コードとエラー・メッセージ(SQLエラー・コード)を戻します。これは、何の例外が発生した場合でも、実際にJVMから例外がスローされることがないように行われ、その結果、PL/SQLは元の例外にアクセスできなくなります。
構文
PROCEDURE getExceptionContent( ctxHdl IN ctxType, errNo OUT NUMBER, errMsg OUT VARCHAR2);
パラメータ | IN / OUT | 説明 |
---|---|---|
ctxHdl |
(IN) |
コンテキスト・ハンドル。 |
errNo |
(IN) |
エラー番号。 |
errMsg |
(IN) |
エラー・メッセージ。 |
コンテキストの作成時に指定した表にXML文書を挿入し、挿入された行数を戻します。指定できるオプションは、次の表のとおりです。
構文 | 説明 |
---|---|
FUNCTION insertXML(
|
xDoc パラメータをVARCHAR2 として渡します。 |
FUNCTION insertXML(
|
xDoc パラメータをCLOB として渡します。 |
パラメータ | IN / OUT | 説明 |
---|---|---|
ctxHdl |
(IN) |
コンテキスト・ハンドル。 |
xDoc |
(IN) |
XML文書を含む文字列。 |
保存コンテキストを作成し、コンテキスト・ハンドルを戻します。
構文
FUNCTION newContext( targetTable IN VARCHAR2) RETURN ctxType;
パラメータ | IN / OUT | 説明 |
---|---|---|
targetTable |
(IN) |
XML文書のロード先となる表。 |
例外が発生してスローされる場合、OracleXMLSQLException
で例外をラップするのではなく、発生した例外自体をスローするようにXSUに指示します。
構文
PROCEDURE propagateOriginalException( ctxHdl IN ctxType, flag IN BOOLEAN);
パラメータ | IN / OUT | 説明 |
---|---|---|
ctxHdl |
(IN) |
コンテキスト・ハンドル。 |
flag |
(IN) |
元の例外を伝播するかどうか。0=FALSE 、1=TRUE です。 |
トップレベルのスタイルシート・パラメータの値を削除します。
構文
PROCEDURE removeXSLTParam( ctxHdl IN ctxType, name IN VARCHAR2);
パラメータ | IN / OUT | 説明 |
---|---|---|
ctxHdl |
(IN) |
コンテキスト・ハンドル。 |
name |
(IN) |
パラメータ名。 |
DMLの操作中に使用されたバッチ・サイズを変更します。挿入、更新または削除を実行する場合は、複数の操作をバッチ化することで、それぞれを別の文として実行しないで、1回ですべてを実行できます。ただし、すべてのバインド値をバッファに設定するために必要なメモリー量が増加します。バッチが使用されると、バッチが実行された後にのみコミットが発生することに注意してください。したがって、バッチ内の文のいずれかが失敗した場合は、バッチ全体がロールバックされます。このロールバックは、パフォーマンス向上には少し役立ちますが、回避する場合は、バッチ・サイズを1に設定してください。
構文
PROCEDURE setBatchSize( ctxHdl IN ctxType, batchSize IN NUMBER);
パラメータ | IN / OUT | 説明 |
---|---|---|
ctxHdl |
(IN) |
コンテキスト・ハンドル。 |
batchSize |
(IN) |
バッチ・サイズ。 |
コミットするバッチ・サイズを設定します。コミットするバッチ・サイズは、数値またはコミットの前に挿入されたレコードを参照します。batchSize
が1
未満の場合、またはセッションが自動コミット・モードの場合、XSUを使用しても明示的なコミットは行われません。デフォルトでは、commitBatch
は0
(ゼロ)です。
構文
PROCEDURE setCommitBatch( ctxHdl IN ctxType, batchSize IN NUMBER);
パラメータ | IN / OUT | 説明 |
---|---|---|
ctxHdl |
(IN) |
コンテキスト・ハンドル。 |
batchSize |
(IN) |
コミットするバッチ・サイズ。 |
XML文書で生成された日付の書式を設定します。日付書式パターン(日付マスク)の構文は、java.text.SimpleDateFormat
クラスの要件に従う必要があります。マスクを<code>null</code>
または空の文字列に設定すると、日付マスクの設定が解除されます。
構文
PROCEDURE setDateFormat( ctxHdl IN ctxType, mask IN VARCHAR2);
パラメータ | IN / OUT | 説明 |
---|---|---|
ctxHdl |
(IN) |
コンテキスト・ハンドル。 |
mask |
(IN) |
日付書式パターンの構文。 |
XSUが要素名(XMLタグ)に基づいて、XML要素をデータベースの列または属性にマップします。このファンクションは、大/小文字を区別しないでマップするようにXSUに指示します。
構文
PROCEDURE setIgnoreCase( ctxHdl IN ctxType, flag IN NUMBER);
パラメータ | IN / OUT | 説明 |
---|---|---|
ctxHdl |
(IN) |
コンテキスト・ハンドル。 |
flag |
(IN) |
XML文書でタグの大/小文字を無視するかどうか。0=FALSE 、1=TRUE です。 |
このメソッドは、「キー列リスト」に列を追加します。列の値をNULL
にはできません。更新または削除の場合、キー列リストの列が文のWHERE
句を構成します。更新を実行するには、キー列リストを先に指定する必要がありますが、削除操作においては、これはオプションです。
構文
PROCEDURE setKeyColumn( ctxHdl IN ctxType, colName IN VARCHAR2);
パラメータ | IN / OUT | 説明 |
---|---|---|
ctxHdl |
(IN) |
コンテキスト・ハンドル。 |
colName |
(IN) |
キー列リストに追加される列。NULL は設定できません。 |
空白を保持するかどうかをXSUに指示します。
構文
PROCEDURE setPreserveWhitespace( ctxHdl IN ctxType, flag IN BOOLEAN := true);
パラメータ | IN / OUT | 説明 |
---|---|---|
ctxHdl |
(IN) |
コンテキスト・ハンドル。 |
flag |
(IN) |
XSUが空白を保持する必要があるかどうか。 |
XML文書で使用されたタグに名前を付け、データベース・レコードに対応するXML要素を囲みます。
構文
PROCEDURE setRowTag( ctxHdl IN ctxType, tag IN VARCHAR2);
パラメータ | IN / OUT | 説明 |
---|---|---|
ctxHdl |
(IN) |
コンテキスト・ハンドル。 |
tag |
(IN) |
タグ名。 |
XML識別子にマップされたSQLオブジェクト名が有効なXML識別子でない場合、XMLタグのエスケープをオンまたはオフにします。
構文
PROCEDURE setSQLToXMLNameEscaping( ctxHdl IN ctxType, flag IN BOOLEAN := true);
パラメータ | IN / OUT | 説明 |
---|---|---|
ctxHdl |
(IN) |
コンテキスト・ハンドル。 |
flag |
(IN) |
エスケープをオンにするかどうか。 |
更新列リストに列を追加します。挿入の場合、デフォルトでは表のすべての列に値が挿入される一方、更新の場合、デフォルトではXML文書のROW要素に存在するタグに対応する列のみが更新されます。更新列リストが指定されている場合、このリストに含まれる列のみが更新または挿入の対象となります。
構文
PROCEDURE setUpdateColumn( ctxHdl IN ctxType, colName IN VARCHAR2);
パラメータ | IN / OUT | 説明 |
---|---|---|
ctxHdl |
(IN) |
コンテキスト・ハンドル。 |
colName |
(IN) |
更新列リストに追加される列。 |
保存するXMLに追加するXSL変換を登録します。スタイルシートがすでに登録されている場合は、新しいものに置換されます。スタイルシートを登録解除するには、URIにNULLを渡します。指定できるオプションは、次の表のとおりです。
構文 | 説明 |
---|---|
PROCEDURE setXSLT(
|
URIを介してスタイルシートを渡します。 |
PROCEDURE setXSLT(
|
CLOB を介してスタイルシートを渡します。 |
パラメータ | IN / OUT | 説明 |
---|---|---|
ctxHdl |
(IN) |
コンテキスト・ハンドル。 |
uri |
(IN) |
登録するスタイルシートのURI。 |
ref |
(IN) |
エンティティに含めたりインポートする他、外部エンティティのURL。 |
stylesheet |
(IN) |
登録するスタイルシートを含むCLOB 。 |
トップレベルのスタイルシート・パラメータの値を設定します。パラメータには、有効なXPath式を指定します(このため、リテラル値を明示的に引用する必要があります)。
構文
PROCEDURE setXSLTParam( ctxHdl IN ctxType, name IN VARCHAR2, value IN VARCHAR2);
パラメータ | IN / OUT | 説明 |
---|---|---|
ctxHdl |
(IN) |
コンテキスト・ハンドル。 |
name |
(IN) |
パラメータ名。 |
value |
(IN) |
XPath式として指定するパラメータ値。 |
コンテキストの作成時に指定した表をXML文書のデータで更新し、更新された行数を戻します。指定できるオプションは、次の表のとおりです。
構文 | 説明 |
---|---|
FUNCTION updateXML(
|
xDoc パラメータをVARCHAR2 として渡します。 |
FUNCTION updateXML(
|
xDoc パラメータをCLOB として渡します。 |
パラメータ | IN / OUT | 説明 |
---|---|---|
ctxHdl |
(IN) |
コンテキスト・ハンドル。 |
xDoc |
(IN) |
XML文書を含む文字列。 |