201 DBMS_XMLSAVE
DBMS_XMLSAVE
は、XMLからデータベース・タイプへの変換の機能を提供します。
この章のトピックは、次のとおりです:
201.1 DBMS_XMLSAVEのセキュリティ・モデル
DBMS_XMLSAVE
パッケージは、XDB
が所有しているため、SYS
またはXDB
によって作成される必要があります。EXECUTE
権限は、PUBLIC
に付与されます
このパッケージ内のサブプログラムは、現行のユーザーの権限を使用して実行されます。
201.2 DBMS_XMLSAVEの定数
DBMS_XMLSAVEには、パラメータ値の指定時に使用する定数が含まれます。
次の表に、これらの定数の定義を示します。
表201-1 DBMS_XMLSAVEの定数
定数 | 説明 |
---|---|
|
データベース・レコードに対応する要素のデフォルト・タグ名 -- ROW。 |
|
デフォルトの日付マスク -- 'MM/dd/yyyy HH:mm:ss'。 |
|
XML要素のデータベース・エンティティへのマップ時に、XSUは大/小文字区別が必要であることを指定します。 |
|
XML要素のデータベース・エンティティへのマップ時に、XSUは大/小文字区別が不要なことを指定します。 |
201.3 タイプ
DBMS_XMLSAVE
サブプログラムは、ctxType
タイプを使用します。
表201-2 DBMS_XMLSAVEのタイプ
タイプ | 説明 |
---|---|
|
問合せコンテキスト・ハンドルのタイプ。問合せコンテキスト・ハンドルのタイプ。NEWCONTEXTの戻りタイプです。 |
201.4 DBMS_XMLSAVEサブプログラムの要約
この表は、DBMS_XMLSAVE
サブプログラムを示し、簡単に説明しています。
表201-3 DBMS_XMLSAVEパッケージのサブプログラム
メソッド | 説明 |
---|---|
キー列リストをクリアします。 |
|
更新列リストをクリアします。 |
|
特定の保存コンテキストのクローズまたは割当て解除を行います。 |
|
XML文書のデータで指定したレコードを、コンテキスト作成時に指定した表から削除します。 |
|
スローされた例外のエラー・コードおよびエラー・メッセージを戻します。 |
|
コンテキストの作成時に指定した表にXML文書を挿入します。 |
|
保存コンテキストを作成し、コンテキスト・ハンドルを戻します。 |
|
例外が発生してスローされる場合、 |
|
トップレベルのスタイルシート・パラメータの値を削除します。 |
|
DMLの操作中に使用されたバッチ・サイズを変更します。 |
|
コミットするバッチ・サイズを設定します。 |
|
XML文書で生成された日付の書式を設定します。 |
|
XSUがXML要素をデータベースにマップします。 |
|
このメソッドは、キー列リストに列を追加します。 |
|
空白を保持するかどうかをXSUに指示します。 |
|
XML文書で使用されたタグに名前を付け、データベースに対応するXML要素を囲みます。 |
|
XML識別子にマップされたSQLオブジェクト名が有効なXML識別子でない場合、XMLタグのエスケープをオンまたはオフにします。 |
|
更新列リストに列を追加します。 |
|
保存するXMLに適用するXSL変換を登録します。 |
|
トップレベルのスタイルシート・パラメータの値を設定します。 |
|
XML文書を指定して、表を更新します。 |
201.4.1 CLEARKEYCOLUMNLIST
このプロシージャは、キー列リストをクリアします。
構文
PROCEDURE clearKeyColumnList(
ctxHdl IN ctxType);
パラメータ
表201-4 CLEARKEYCOLUMNLISTプロシージャのパラメータ
パラメータ | IN / OUT | 説明 |
---|---|---|
|
|
コンテキスト・ハンドル。 |
201.4.2 CLEARUPDATECOLUMNLIST
このプロシージャは、更新列リストをクリアします。
構文
PROCEDURE clearUpdateColumnList(
ctxHdl IN ctxType);
パラメータ
表201-5 CLEARUPDATECOLUMNLISTプロシージャのパラメータ
パラメータ | IN / OUT | 説明 |
---|---|---|
|
|
コンテキスト・ハンドル。 |
201.4.3 CLOSECONTEXT
このプロシージャは、特定の保存コンテキストのクローズまたは割当て解除を行います。
構文
PROCEDURE closeContext(
ctxHdl IN ctxType);
パラメータ
表201-6 CLOSECONTEXTプロシージャのパラメータ
パラメータ | IN / OUT | 説明 |
---|---|---|
|
|
コンテキスト・ハンドル。 |
201.4.4 DELETEXML
DELETEXML
ファンクションは、XML文書のデータで指定したレコードを、コンテキスト作成時に指定した表から削除し、削除された行数を戻します。
構文
指定できるオプションは、次の表のとおりです。
FUNCTION deleteXML(
ctxHdl IN ctxPType,
xDoc IN VARCHAR2)
RETURN NUMBER;
FUNCTION deleteXML(
ctxHdl IN ctxType,
xDoc IN CLOB)
RETURN NUMBER;
パラメータ
表201-7 DELETEXMLファンクションのパラメータ
パラメータ | IN / OUT | 説明 |
---|---|---|
|
|
コンテキスト・ハンドル。 |
|
|
XML文書を含む文字列。 |
201.4.5 GETEXCEPTIONCONTENT
このメソッドは、引数を使用して、スローした例外のエラー・コードとエラー・メッセージ(SQLエラー・コード)を戻します。
これは、何の例外が発生した場合でも、実際にJVMから例外がスローされることがないように行われ、PL/SQLは元の例外にアクセスできなくなります。
構文
PROCEDURE getExceptionContent(
ctxHdl IN ctxType,
errNo OUT NUMBER,
errMsg OUT VARCHAR2);
パラメータ
表201-8 GETEXCEPTIONCONTENTプロシージャのパラメータ
パラメータ | IN / OUT | 説明 |
---|---|---|
|
|
コンテキスト・ハンドル。 |
|
|
エラー番号。 |
|
|
エラー・メッセージ。 |
201.4.6 INSERTXML
コンテキストの作成時に指定した表にXML文書を挿入し、挿入された行数を戻します。指定できるオプションは、次の表のとおりです。
構文
表201-9 INSERTXMLファンクションの構文
構文 | 説明 |
---|---|
|
|
|
|
パラメータ
表201-10 INSERTXMLファンクションのパラメータ
パラメータ | IN / OUT | 説明 |
---|---|---|
|
|
コンテキスト・ハンドル。 |
|
|
XML文書を含む文字列。 |
201.4.7 NEWCONTEXT
NEWCONTEXT
は、保存コンテキストを作成し、コンテキスト・ハンドルを戻します。
構文
FUNCTION newContext(
targetTable IN VARCHAR2)
RETURN ctxType;
パラメータ
表201-11 NEWCONTEXTファンクションのパラメータ
パラメータ | IN / OUT | 説明 |
---|---|---|
|
|
XML文書のロード先となる表。 |
201.4.8 PROPAGATEORIGINALEXCEPTION
PROPAGATEORIGINALEXCEPTION
プロシージャは、例外が発生してスローされる場合、OracleXMLSQLException
で例外をラップするのではなく、発生した例外自体をスローするようにXSUに指示します。
構文
PROCEDURE propagateOriginalException(
ctxHdl IN ctxType,
flag IN BOOLEAN);
パラメータ
表201-12 PROPAGATEORIGINALEXCEPTIONプロシージャのパラメータ
パラメータ | IN / OUT | 説明 |
---|---|---|
|
|
コンテキスト・ハンドル。 |
|
|
元の例外を伝播するかどうか。0= |
201.4.9 REMOVEXSLTPARAM
このプロシージャは、トップレベルのスタイルシート・パラメータの値を削除します。
構文
PROCEDURE removeXSLTParam(
ctxHdl IN ctxType,
name IN VARCHAR2);
パラメータ
表201-13 REMOVEXSLTPARAMプロシージャのパラメータ
パラメータ | IN / OUT | 説明 |
---|---|---|
|
|
コンテキスト・ハンドル。 |
|
|
パラメータ名。 |
201.4.10 SETBATCHSIZE
このプロシージャは、DMLの操作中に使用されたバッチ・サイズを変更します。
挿入、更新または削除を実行する場合は、複数の操作をバッチ化することで、それぞれを別の文として実行しないで、1回ですべてを実行できます。ただし、すべてのバインド値をバッファに設定するために必要なメモリー量が増加します。バッチが使用されると、バッチが実行された後にのみコミットが発生することに注意してください。したがって、バッチ内の文のいずれかが失敗した場合は、バッチ全体がロールバックされます。このロールバックは、パフォーマンス向上には少し役立ちますが、回避する場合は、バッチ・サイズを1に設定してください。
構文
PROCEDURE setBatchSize(
ctxHdl IN ctxType,
batchSize IN NUMBER);
パラメータ
表201-14 SETBATCHSIZEプロシージャのパラメータ
パラメータ | IN / OUT | 説明 |
---|---|---|
|
|
コンテキスト・ハンドル。 |
|
|
バッチ・サイズ。 |
201.4.11 SETCOMMITBATCH
このプロシージャは、コミットするバッチ・サイズを設定します。
コミットするバッチ・サイズは、数値またはコミットの前に挿入されたレコードを参照します。batchSize
が1
未満の場合、またはセッションが自動コミット・モードの場合、XSUを使用しても明示的なコミットは行われません。デフォルトでは、commitBatch
は0
(ゼロ)です。
構文
PROCEDURE setCommitBatch(
ctxHdl IN ctxType,
batchSize IN NUMBER);
パラメータ
表201-15 SETCOMMITBATCHプロシージャのパラメータ
パラメータ | IN / OUT | 説明 |
---|---|---|
|
|
コンテキスト・ハンドル。 |
|
|
コミットするバッチ・サイズ。 |
201.4.12 SETDATEFORMAT
このプロシージャは、XML文書で生成された日付の書式を設定します。
日付書式パターン(日付マスク)の構文は、java.text.SimpleDateFormat
クラスの要件に従う必要があります。マスクを<code>null</code>
または空の文字列に設定すると、日付マスクの設定が解除されます。
構文
PROCEDURE setDateFormat(
ctxHdl IN ctxType,
mask IN VARCHAR2);
パラメータ
表201-16 SETDATEFORMATプロシージャのパラメータ
パラメータ | IN / OUT | 説明 |
---|---|---|
|
|
コンテキスト・ハンドル。 |
|
|
日付書式パターンの構文。 |
201.4.13 SETIGNORECASE
このファンクションは、XSUがXML要素をデータベースの列/属性にマップするときに、大/小文字を区別しないかどうかをXSUに指示します。このマッチングは、要素名(XMLタグ)に基づいて行われます。
構文
PROCEDURE setIgnoreCase(
ctxHdl IN ctxType,
flag IN NUMBER);
パラメータ
表201-17 SETIGNORECASEプロシージャのパラメータ
パラメータ | IN / OUT | 説明 |
---|---|---|
|
|
コンテキスト・ハンドル。 |
|
|
XML文書でタグの大/小文字を無視するかどうか。0= |
201.4.14 SETKEYCOLUMN
このメソッドは、「キー列リスト」に列を追加します。
列の値をNULL
にはできません。更新または削除の場合、キー列リストの列が文のWHERE
句を構成します。更新を実行するには、キー列リストを先に指定する必要がありますが、削除操作においては、これはオプションです。
構文
PROCEDURE setKeyColumn(
ctxHdl IN ctxType,
colName IN VARCHAR2);
パラメータ
表201-18 SETKEYCOLUMNプロシージャのパラメータ
パラメータ | IN / OUT | 説明 |
---|---|---|
|
|
コンテキスト・ハンドル。 |
|
|
キー列リストに追加される列。 |
201.4.15 SETPRESERVEWHITESPACE
このプロシージャは、空白を保持するかどうかをXSUに指示します。
構文
PROCEDURE setPreserveWhitespace( ctxHdl IN ctxType, flag IN BOOLEAN := true);
パラメータ
表201-19 SETPRESERVEWHITESPACEプロシージャのパラメータ
パラメータ | IN / OUT | 説明 |
---|---|---|
|
|
コンテキスト・ハンドル。 |
|
|
XSUが空白を保持する必要があるかどうか。 |
201.4.16 SETROWTAG
このプロシージャは、XML文書で使用されたタグに名前を付け、データベース・レコードに対応するXML要素を囲みます。
構文
PROCEDURE setRowTag(
ctxHdl IN ctxType,
tag IN VARCHAR2);
パラメータ
表201-20 SETROWTAGプロシージャのパラメータ
パラメータ | IN / OUT | 説明 |
---|---|---|
|
|
コンテキスト・ハンドル。 |
|
|
タグ名。 |
201.4.17 SETSQLTOXMLNAMEESCAPING
SETSQLTOXMLNAMEESCAPING
は、XML識別子にマップされたSQLオブジェクト名が有効なXML識別子でない場合、XMLタグのエスケープをオンまたはオフにします。
構文
PROCEDURE setSQLToXMLNameEscaping(
ctxHdl IN ctxType,
flag IN BOOLEAN := true);
パラメータ
表201-21 SETSQLTOXMLNAMEESCAPINGプロシージャのパラメータ
パラメータ | IN / OUT | 説明 |
---|---|---|
|
|
コンテキスト・ハンドル。 |
|
|
エスケープをオンにするかどうか。 |
201.4.18 SETUPDATECOLUMN
SETUPDATECOLUMN
は、更新列リストに列を追加します。
挿入の場合、デフォルトでは、表内のすべての列に値を挿入します。更新の場合、デフォルトでは、XML文書のROW要素内に存在するタグに対応する列のみを更新します。更新列リストが指定されている場合、このリストに含まれる列のみが更新または挿入の対象となります。
構文
PROCEDURE setUpdateColumn(
ctxHdl IN ctxType,
colName IN VARCHAR2);
パラメータ
表201-22 SETUPDATECOLUMNプロシージャのパラメータ
パラメータ | IN / OUT | 説明 |
---|---|---|
|
|
コンテキスト・ハンドル。 |
|
|
更新列リストに追加される列。 |
201.4.19 SETXSLT
SETXSLT
は、保存するXMLに追加するXSL変換を登録します。
スタイルシートがすでに登録されている場合は、新しいものに置換されます。スタイルシートを登録解除するには、URIにNULLを渡します。指定できるオプションは、次の表のとおりです。
構文
表201-23 SETXSLTプロシージャの構文
構文 | 説明 |
---|---|
|
URIを介してスタイルシートを渡します。 |
|
|
パラメータ
表201-24 SETXSLTプロシージャのパラメータ
パラメータ | IN / OUT | 説明 |
---|---|---|
|
|
コンテキスト・ハンドル。 |
|
|
登録するスタイルシートのURI。 |
|
|
エンティティに含めたりインポートする他、外部エンティティのURL。 |
|
|
登録するスタイルシートを含む |
201.4.20 SETXSLTPARAM
SETXSLTPARAM
は、トップレベルのスタイルシート・パラメータの値を設定します。
パラメータには、有効なXPath式を指定します(このため、リテラル値を明示的に引用する必要があります)。
構文
PROCEDURE setXSLTParam(
ctxHdl IN ctxType,
name IN VARCHAR2,
value IN VARCHAR2);
パラメータ
表201-25 SETXSLTPARAMプロシージャのパラメータ
パラメータ | IN / OUT | 説明 |
---|---|---|
|
|
コンテキスト・ハンドル。 |
|
|
パラメータ名。 |
|
|
XPath式として指定するパラメータ値。 |
201.4.21 UPDATEXML
コンテキストの作成時に指定した表をXML文書のデータで更新し、更新された行数を戻します。
指定できるオプションは、次の表のとおりです。
構文
FUNCTION updateXML(
ctxHdl IN ctxType,
xDoc IN VARCHAR2)
RETURN NUMBER;
FUNCTION updateXML(
ctxHdl IN ctxType,
xDoc IN CLOB)
RETURN NUMBER;
パラメータ
表201-26 UPDATEXMLファンクションのパラメータ
パラメータ | IN / OUT | 説明 |
---|---|---|
|
|
コンテキスト・ハンドル。 |
|
|
XML文書を含む文字列。 |