IBM Books

管理およびプログラミングの手引き


データを保管する

XML エクステンダーを使用して、原形の XML 文書を XML 列に挿入することができます。 サイド表を定義する場合、XML エクステンダーは自動的にこれらの表を更新します。 XML 文書を直接保管する場合、XML エクステンダーは基本タイプを XML タイプとして保管します。

タスクの概説:

  1. DAD ファイルを作成または更新したことを確認します。
  2. 文書を保管するときに使用するデータ・タイプを決めます。
  3. データを DB2 表に保管するための方式 (キャスト関数または UDF) を選択します。
  4. XML 表および列が XML 文書を含むように指定する SQL INSERT ステートメントを指定します。

XML エクステンダーには、XML 文書を保管するための 2 つの方式が備わっています。 それらは、デフォルト・キャスト関数と保管 UDF です。 表 8 は、それぞれの方式をいつ使用するかを示しています。


表 8. XML エクステンダーの保管関数
基本タイプ 次のものとして DB2 に保管する
XMLVARCHAR XMLCLOB XMLFILE
VARCHAR XMLVARCHAR() N/A XMLFileFromVarchar()
CLOB N/A XMLCLOB() XMLFileFromCLOB()
FILE XMLVarcharFromFile() XMLCLOBFromFile() XMLFILE

デフォルト・キャスト関数を使用する
UDT ごとに、SQL 基本タイプを UDT にキャストするための デフォルト・キャスト関数 が存在します。 XML エクステンダーに備わっているキャスト関数を VALUES 文節内で使用して、データを挿入することができます。 表 9 は、備わっているキャスト関数を示しています。


表 9. XML エクステンダーのデフォルト・キャスト関数
SELECT 文節内で使用されるキャスト 戻りタイプ 説明
XMLVARCHAR(VARCHAR) XMLVARCHAR VARCHAR のメモリー・バッファーからの入力
XMLCLOB(CLOB) XMLCLOB CLOB または CLOB ロケーターのメモリー・バッファーからの入力
XMLFILE(VARCHAR) XMLFILE ファイル名だけを保管する

例: 以下のステートメントは、 キャストされた VARCHAR タイプを XMLVARCHAR タイプに挿入します。

INSERT INTO sales_tab
VALUES('123456', 'Sriram Srinivasan', db2xml.XMLVarchar(:xml_buff))

保管 UDF を使用する
XML エクステンダー UDT ごとに、 基本タイプ以外のリソースから DB2 にデータをインポートするために保管 UDF が存在します。 たとえば、XML ファイル文書を DB2 に XMLCLOB としてインポートしたい場合、 関数 XMLCLOBFromFile() を使用できます。

表 10 は、XML エクステンダーに備わっている保管関数を示しています。


表 10. XML エクステンダーの保管 UDF
保管ユーザー定義関数 戻りタイプ 説明
XMLVarcharFromFile() XMLVARCHAR XML 文書をサーバー上のファイルから読み取り、XMLVARCHAR タイプの値を戻します。
XMLCLOBFromFile() XMLCLOB XML 文書をサーバー上のファイルから読み取り、XMLCLOB タイプの値を戻します。
XMLFileFromVarchar() XMLFILE XML 文書をメモリーから VARCHAR として読み取り、それを外部ファイルに書き込んで、 XMLFILE タイプの値 (ファイル名) を戻します。
XMLFileFromCLOB() XMLFILE XML 文書をメモリーから CLOB または CLOB ロケーターとして読み取り、 それを外部ファイルに書き込んで、XMLFILE タイプの値 (ファイル名) を戻します。

例: 以下のステートメントは、 XMLCLOBFromFile() 関数を XMLCLOB として使用して、レコードを XML 表に保管します。

EXEC SQL INSERT INTO sales_tab(ID, NAME, ORDER)
    VALUES( '1234', 'Sriram Srinivasan,
      XMLCLOBFromFile('c:\dxx\samples\cmd\getstart.xml'))

上記の例では、 XML オブジェクトが c:\dxx\samples\cmd\getstart.xml という名前のファイルから、 表 SALES_TAB 内の列 ORDER にインポートされます。


[ ページのトップ | 前ページ | 次ページ | 目次 | 索引 ]