CONTAINS関数は、データベースに格納しているさまざまなXML文書に対して条件を指定して検索を行う場合に、SQL文の探索条件に指定します。CONTAINS関数は、関数の引数に指定した列に格納されるXML文書に対して、検索条件を満たす場合は1を、満たさない場合は0を返します。
CONTAINS関数の結果のデータ型は、REAL型です。検索式に一致するデータがある場合は1を、一致データがない場合は0を返します。
CONTAINS関数は、第1引数で指定した検索対象で識別される表の列に対して格納されているXMLデータを、指定した検索式で検索することができます。
CONTAINS関数に指定した検索対象または検索式がNULL値である場合は、CONTAINS関数の結果はNULLとなります。
CONTAINS関数は、以下の形式の比較述語として、問合せ指定のWHERE句の探索条件、結合表の結合条件、UPDATE文およびDELETE文のWHERE探索条件に指定することができます。
検索対象に指定する列指定は、問合せ指定のFROM句で指定した表の列でなければなりません。外への参照の列は指定できません。
検索対象に指定する列指定がビュー表の列または導出表の列の場合、そのビュー表または導出表は更新可能でなければなりません。
検索対象に指定した列に対して、XML構造のインデックスが作成されている必要があります。
検索対象で指定した列のデータ型は、BLOB型です。
検索式は文字型の値指定です。定数や変数、動的パラメタが指定できます。XMLデータ検索を行うための検索式を指定します。検索式については、“第6章 XML検索式”を参照してください。
検索式を定数で指定する場合、検索式中の引用符(’)は、2つ連続して指定する必要があります。
検索式に動的パラメタを指定した場合のDESCRIBE情報はCHAR型となります。
比較演算子として指定できるのは“>”のみです。
使用例
発注表の伝票のうち、発注伝票XMLグループのXML文書中の要素“発注者”の値が富士通である格納日付と発注伝票を検索
SELECT 格納日付,発注伝票 FROM 発注表 WHERE CONTAINS(伝票,XML(発注伝票, '/[//発注者=" 富士通" ]' )) > 0