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

前
 
次
 

196 DBMS_XMLSAVE

DBMS_XMLSAVEは、XMLからデータベース・タイプへの変換の機能を提供します。


関連項目:

『Oracle XML DB開発者ガイド』

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

DBMS_XMLSAVEの使用方法

セキュリティ・モデル

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

定数

表196-1 DBMS_XMLSAVEの定数

定数 説明

DEFAULT_ROWTAG

データベース・レコードに対応する要素のデフォルト・タグ名 -- ROW。

DEFAULT_DATE_FORMAT

デフォルトの日付マスク -- 'MM/dd/yyyy HH:mm:ss'。

MATCH_CASE

XML要素のデータベース・エンティティへのマップ時に、XSUは大/小文字区別が必要であることを指定します。

IGNORE_CASE

XML要素のデータベース・エンティティへのマップ時に、XSUは大/小文字区別が不要なことを指定します。


タイプ

表196-2 DBMS_XMLSAVEのタイプ

タイプ 説明

ctxType

問合せコンテキスト・ハンドルのタイプ。問合せコンテキスト・ハンドルのタイプ。NEWCONTEXTの戻りタイプです。


DBMS_XMLSAVEサブプログラムの要約

表196-3 DBMS_XMLSAVEパッケージのサブプログラム

メソッド 説明

CLEARKEYCOLUMNLIST


キー列リストをクリアします。

CLEARUPDATECOLUMNLIST


更新列リストをクリアします。

CLOSECONTEXT


特定の保存コンテキストのクローズまたは割当て解除を行います。

DELETEXML


XML文書のデータで指定したレコードを、コンテキスト作成時に指定した表から削除します。

GETEXCEPTIONCONTENT


スローされた例外のエラー・コードおよびエラー・メッセージを戻します。

INSERTXML


コンテキストの作成時に指定した表にXML文書を挿入します。

NEWCONTEXT


保存コンテキストを作成し、コンテキスト・ハンドルを戻します。

PROPAGATEORIGINALEXCEPTION


例外が発生してスローされる場合、OracleXMLSQLExceptionで例外をラップするのではなく、発生した例外自体をスローするようにXSUに指示します。

REMOVEXSLTPARAM


トップレベルのスタイルシート・パラメータの値を削除します。

SETBATCHSIZE


DMLの操作中に使用されたバッチ・サイズを変更します。

SETCOMMITBATCH


コミットするバッチ・サイズを設定します。

SETDATEFORMAT


XML文書で生成された日付の書式を設定します。

SETIGNORECASE


XSUがXML要素をデータベースにマップします。

SETKEYCOLUMN


このメソッドは、キー列リストに列を追加します。

SETPRESERVEWHITESPACE


空白を保持するかどうかをXSUに指示します。

SETROWTAG


XML文書で使用されたタグに名前を付け、データベースに対応するXML要素を囲みます。

SETSQLTOXMLNAMEESCAPING


XML識別子にマップされたSQLオブジェクト名が有効なXML識別子でない場合、XMLタグのエスケープをオンまたはオフにします。

SETUPDATECOLUMN


更新列リストに列を追加します。

SETXSLT


保存するXMLに適用するXSL変換を登録します。

SETXSLTPARAM


トップレベルのスタイルシート・パラメータの値を設定します。

UPDATEXML


XML文書を指定して、表を更新します。


CLEARKEYCOLUMNLIST

キー列リストをクリアします。

構文

PROCEDURE clearKeyColumnList(
   ctxHdl IN ctxType);
パラメータ IN / OUT 説明
ctxHdl (IN) コンテキスト・ハンドル。

CLEARUPDATECOLUMNLIST

更新列リストをクリアします。

構文

PROCEDURE clearUpdateColumnList(
   ctxHdl IN ctxType);
パラメータ IN / OUT 説明
ctxHdl (IN) コンテキスト・ハンドル。

CLOSECONTEXT

特定の保存コンテキストのクローズまたは割当て解除を行います。

構文

PROCEDURE closeContext(
   ctxHdl IN ctxType);
パラメータ IN / OUT 説明
ctxHdl (IN) コンテキスト・ハンドル。

DELETEXML

XML文書のデータで指定したレコードを、コンテキスト作成時に指定した表から削除し、削除した行数を戻します。指定できるオプションは、次の表のとおりです。

構文 説明
FUNCTION deleteXML(

ctxHdl IN ctxPType,

xDoc IN VARCHAR2)

RETURN NUMBER;

xDocパラメータにVARCHAR2タイプを使用します。
FUNCTION deleteXML(

ctxHdl IN ctxType,

xDoc IN CLOB)

RETURN NUMBER;

xDocパラメータにCLOBタイプを使用します。

パラメータ IN / OUT 説明
ctxHdl (IN) コンテキスト・ハンドル。
xDoc (IN) XML文書を含む文字列。

GETEXCEPTIONCONTENT

このメソッドは、引数を使用して、スローした例外のエラー・コードとエラー・メッセージ(SQLエラー・コード)を戻します。これは、何の例外が発生した場合でも、実際にJVMから例外がスローされることがないように行われ、その結果、PL/SQLは元の例外にアクセスできなくなります。

構文

PROCEDURE getExceptionContent(
   ctxHdl IN ctxType,
   errNo OUT NUMBER,
   errMsg OUT VARCHAR2);
パラメータ IN / OUT 説明
ctxHdl (IN) コンテキスト・ハンドル。
errNo (IN) エラー番号。
errMsg (IN) エラー・メッセージ。

INSERTXML

コンテキストの作成時に指定した表にXML文書を挿入し、挿入された行数を戻します。指定できるオプションは、次の表のとおりです。

構文 説明
FUNCTION insertXML(

ctxHdl IN ctxType,

xDoc IN VARCHAR2)

RETURN NUMBER;

xDocパラメータをVARCHAR2として渡します。
FUNCTION insertXML(

ctxHdl IN ctxType,

xDoc IN CLOB)

RETURN NUMBER;

xDocパラメータをCLOBとして渡します。

パラメータ IN / OUT 説明
ctxHdl (IN) コンテキスト・ハンドル。
xDoc (IN) XML文書を含む文字列。

NEWCONTEXT

保存コンテキストを作成し、コンテキスト・ハンドルを戻します。

構文

FUNCTION newContext(
   targetTable IN VARCHAR2)
RETURN ctxType;
パラメータ IN / OUT 説明
targetTable (IN) XML文書のロード先となる表。

PROPAGATEORIGINALEXCEPTION

例外が発生してスローされる場合、OracleXMLSQLExceptionで例外をラップするのではなく、発生した例外自体をスローするようにXSUに指示します。

構文

PROCEDURE propagateOriginalException(
   ctxHdl IN ctxType,
   flag IN BOOLEAN);
パラメータ IN / OUT 説明
ctxHdl (IN) コンテキスト・ハンドル。
flag (IN) 元の例外を伝播するかどうか。0=FALSE、1=TRUEです。

REMOVEXSLTPARAM

トップレベルのスタイルシート・パラメータの値を削除します。

構文

PROCEDURE removeXSLTParam(
   ctxHdl IN ctxType, 
   name IN VARCHAR2);
パラメータ IN / OUT 説明
ctxHdl (IN) コンテキスト・ハンドル。
name (IN) パラメータ名。

SETBATCHSIZE

DMLの操作中に使用されたバッチ・サイズを変更します。挿入、更新または削除を実行する場合は、複数の操作をバッチ化することで、それぞれを別の文として実行しないで、1回ですべてを実行できます。ただし、すべてのバインド値をバッファに設定するために必要なメモリー量が増加します。バッチが使用されると、バッチが実行された後にのみコミットが発生することに注意してください。したがって、バッチ内の文のいずれかが失敗した場合は、バッチ全体がロールバックされます。このロールバックは、パフォーマンス向上には少し役立ちますが、回避する場合は、バッチ・サイズを1に設定してください。

構文

PROCEDURE setBatchSize(
   ctxHdl IN ctxType,
   batchSize IN NUMBER);
パラメータ IN / OUT 説明
ctxHdl (IN) コンテキスト・ハンドル。
batchSize (IN) バッチ・サイズ。

SETCOMMITBATCH

コミットするバッチ・サイズを設定します。コミットするバッチ・サイズは、数値またはコミットの前に挿入されたレコードを参照します。batchSize1未満の場合、またはセッションが自動コミット・モードの場合、XSUを使用しても明示的なコミットは行われません。デフォルトでは、commitBatch0(ゼロ)です。

構文

PROCEDURE setCommitBatch(
   ctxHdl IN ctxType,
   batchSize IN NUMBER);
パラメータ IN / OUT 説明
ctxHdl (IN) コンテキスト・ハンドル。
batchSize (IN) コミットするバッチ・サイズ。

SETDATEFORMAT

XML文書で生成された日付の書式を設定します。日付書式パターン(日付マスク)の構文は、java.text.SimpleDateFormatクラスの要件に従う必要があります。マスクを<code>null</code>または空の文字列に設定すると、日付マスクの設定が解除されます。

構文

PROCEDURE setDateFormat(
   ctxHdl IN ctxType,
   mask IN VARCHAR2);
パラメータ IN / OUT 説明
ctxHdl (IN) コンテキスト・ハンドル。
mask (IN) 日付書式パターンの構文。

SETIGNORECASE

XSUが要素名(XMLタグ)に基づいて、XML要素をデータベースの列または属性にマップします。このファンクションは、大/小文字を区別しないでマップするようにXSUに指示します。

構文

PROCEDURE setIgnoreCase(
   ctxHdl IN ctxType,
   flag IN NUMBER);
パラメータ IN / OUT 説明
ctxHdl (IN) コンテキスト・ハンドル。
flag (IN) XML文書でタグの大/小文字を無視するかどうか。0=FALSE、1=TRUEです。

SETKEYCOLUMN

このメソッドは、「キー列リスト」に列を追加します。列の値をNULLにはできません。更新または削除の場合、キー列リストの列が文のWHERE句を構成します。更新を実行するには、キー列リストを先に指定する必要がありますが、削除操作においては、これはオプションです。

構文

PROCEDURE setKeyColumn( 
   ctxHdl IN ctxType,
   colName IN VARCHAR2);
パラメータ IN / OUT 説明
ctxHdl (IN) コンテキスト・ハンドル。
colName (IN) キー列リストに追加される列。NULLは設定できません。

SETPRESERVEWHITESPACE

空白を保持するかどうかをXSUに指示します。

構文

PROCEDURE setPreserveWhitespace(
   ctxHdl IN ctxType,
   flag IN BOOLEAN := true);
パラメータ IN / OUT 説明
ctxHdl (IN) コンテキスト・ハンドル。
flag (IN) XSUが空白を保持する必要があるかどうか。

SETROWTAG

XML文書で使用されたタグに名前を付け、データベース・レコードに対応するXML要素を囲みます。

構文

PROCEDURE setRowTag(
   ctxHdl IN ctxType,
   tag IN VARCHAR2);
パラメータ IN / OUT 説明
ctxHdl (IN) コンテキスト・ハンドル。
tag (IN) タグ名。

SETSQLTOXMLNAMEESCAPING

XML識別子にマップされたSQLオブジェクト名が有効なXML識別子でない場合、XMLタグのエスケープをオンまたはオフにします。

構文

PROCEDURE setSQLToXMLNameEscaping(
   ctxHdl IN ctxType,
   flag IN BOOLEAN := true);
パラメータ IN / OUT 説明
ctxHdl (IN) コンテキスト・ハンドル。
flag (IN) エスケープをオンにするかどうか。

SETUPDATECOLUMN

更新列リストに列を追加します。挿入の場合、デフォルトでは表のすべての列に値が挿入される一方、更新の場合、デフォルトではXML文書のROW要素に存在するタグに対応する列のみが更新されます。更新列リストが指定されている場合、このリストに含まれる列のみが更新または挿入の対象となります。

構文

PROCEDURE setUpdateColumn( 
   ctxHdl IN ctxType,
   colName IN VARCHAR2);
パラメータ IN / OUT 説明
ctxHdl (IN) コンテキスト・ハンドル。
colName (IN) 更新列リストに追加される列。

SETXSLT

保存するXMLに追加するXSL変換を登録します。スタイルシートがすでに登録されている場合は、新しいものに置換されます。スタイルシートを登録解除するには、URIにNULLを渡します。指定できるオプションは、次の表のとおりです。

構文 説明
PROCEDURE setXSLT(

ctxHdl IN ctxType,

uri IN VARCHAR2,

ref IN VARCHAR2 := null);

URIを介してスタイルシートを渡します。
PROCEDURE setXSLT(

ctxHdl IN ctxType,

stylesheet IN CLOB,

ref IN VARCHAR2 := null);

CLOBを介してスタイルシートを渡します。


パラメータ IN / OUT 説明
ctxHdl (IN) コンテキスト・ハンドル。
uri (IN) 登録するスタイルシートのURI。
ref (IN) エンティティに含めたりインポートする他、外部エンティティのURL。
stylesheet (IN) 登録するスタイルシートを含むCLOB

SETXSLTPARAM

トップレベルのスタイルシート・パラメータの値を設定します。パラメータには、有効なXPath式を指定します(このため、リテラル値を明示的に引用する必要があります)。

構文

PROCEDURE setXSLTParam(
   ctxHdl IN ctxType,
   name IN VARCHAR2,
   value IN VARCHAR2);
パラメータ IN / OUT 説明
ctxHdl (IN) コンテキスト・ハンドル。
name (IN) パラメータ名。
value (IN) XPath式として指定するパラメータ値。

UPDATEXML

コンテキストの作成時に指定した表をXML文書のデータで更新し、更新された行数を戻します。指定できるオプションは、次の表のとおりです。

構文 説明
FUNCTION updateXML(

ctxHdl IN ctxType,

xDoc IN VARCHAR2)

RETURN NUMBER;

xDocパラメータをVARCHAR2として渡します。
FUNCTION updateXML(

ctxHdl IN ctxType,

xDoc IN CLOB)

RETURN NUMBER;

xDocパラメータをCLOBとして渡します。

パラメータ IN / OUT 説明
ctxHdl (IN) コンテキスト・ハンドル。
xDoc (IN) XML文書を含む文字列。