ページの先頭行へ戻る
Symfoware Server V12.7.0 RDB運用ガイド(XMLアダプタ編)
FUJITSU Software

5.2 XMLデータの内容に条件を指定した検索・更新

表に格納しているXMLデータの内容に対して条件を指定するためには、CONTAINS関数を使用します。

CONTAINS関数をWHERE句の中で使用することで、特定の条件を満たすXMLデータを格納している行を対象として、データの取り出し、データの更新、データの削除を行うことができます。CONTAINS関数については、“付録B CONTAINS関数の記述形式”を参照してください。

CONTAINS関数中で指定する、XMLデータに対する条件の指定方法については、“5.3 XMLデータに対する絞込み条件の指定”および“第6章 XML検索式”を参照してください。

以下に、XMLデータの内容に応じた行を操作する例を示します。

取引日付を格納してある列“取引日付”の値が2007年04月以前であり、XMLデータ中の要素“発行者”の値が“A社”である場合のXMLデータを検索

SELECT 伝票 FROM 伝票スキーマ.伝票表
      WHERE 取引日付 < '2007-04-01' AND
      CONTAINS (伝票,  XML  (XMLGR,'/[//発行者 = " A社" ]'))  > 0;
                (1)        (2)          (3)

(1)検索対象列名

(2)XMLグループ名

(3)XML検索式

検索対象列名

CONTAINS関数の対象となる列名を指定します。

XMLデータのインデックスが付加されているBLOB型の列を指定します。

XMLグループ名

検索対象とするXMLデータが属するXMLグループ名を指定します。

XML検索式

検索対象列名で指定した列の内容に対する条件を指定します。

CONTAINS関数は、検索対象列名で指定した列の内容が、XML検索式に一致する場合に1が返ります。一致しない場合は、0が返ります。

XML検索式の書式については、“5.3 XMLデータに対する絞込み条件の指定”および“第6章 XML検索式”を参照してください。