機能
XMLEXISTS述語は、XQuery式の評価結果が空シーケンスであるか否かを評価します。
記述形式
参照項番
値式 → “2.11 値式”
一般規則
XMLEXISTS述語に指定されたXQuery式の評価結果が空シーケンスでない場合、XMLEXISTS述語の結果は真となります。
XMLEXISTS述語に指定されたXQuery式の評価結果が空シーケンスである場合、XMLEXISTS述語の結果は偽となります。
XMLEXISTS述語は、以下の探索条件にのみ指定可能です。
問合せ指定のWHERE句の探索条件
UPDATE文およびDELETE文のWHERE句の探索条件
OBJECT構造の表を指定したSQL文にXMLEXISTS述語は指定できません。
XMLEXISTS述語を問合せ指定に指定した場合、並列検索は行いません。並列検索が指定されても無視します。
XMLデータの検索式を文字列定数で指定します。
参照
XQuery式に指定する検索式の詳細は、“XQueryリファレンス”を参照してください。
注意
XQuery式に指定する検索式は文字列定数で表現するため、検索式の記述内容に' (シングルクォーテーション)を指定することはできません。' (シングルクォーテーション)を含む文字列リテラルを指定する場合には、既定義エンティティー参照の'を指定してください。
既定義エンティティー参照の詳細は、“XQueryリファレンス”を参照してください。
A要素のテキストノードの値が「'ABC銀行'」を表すXQuery式
XMLEXISTS('/A[text()="'ABC銀行'"]' PASSING 伝票)
XQuery式に空文字または空白文字列のみ指定した場合、XMLEXIST述語はエラーになります。
XQuery式の問合せの評価時にエラーが発生した場合、XMLEXIST述語はエラーになります。
PASSING句の値式にはXQuery式の検索対象となるXMLデータを指定します。
PASSING句の値式のデータ型は、BLOB型であることが必要です。
PASSING句に以下の値式を指定することはできません。
集合関数指定
CAST指定
XMLQUERY関数
ファンクションルーチン
値式に指定するXMLデータは、正しいデータ形式であることが必要です。誤ったデータ形式であることを検出した場合、XMLEXISTS述語の結果は偽となります。
参照
XMLデータの正しいXML形式に関しては、“アプリケーション開発ガイド(共通編)”の“SQL/XMLで扱えるデータ形式”を参照してください。
PASSING句を省略、またはPASSING句の値式の値がNULLである場合、XMLEXISTS述語の評価結果は不定になります。
値式に動的パラメタ指定が指定された場合のDESCRIBE情報を以下に示します。
オペランド | DESCRIBE情報 |
---|---|
PASSING句の値式 | BLOB型 |
使用例
製品番号が200番の製品を発注している取引会社の会社番号を検索します。
SELECT 会社番号 FROM 会社表 WHERE XMLEXISTS('/取引先会社情報[発注/製品番号/text() = 200]' PASSING 会社表.会社情報)
上記の問合せにおける、取引先会社と発注製品の情報を以下に示します。
XMLEXISTS述語の指定により、会社表の会社情報列に格納された各XMLデータに対して、XQuery式'/取引先会社情報[発注/製品番号/text()= 200]'が評価されます。XQuery式の評価結果より、XMLEXISTS述語は図中の会社番号63と72の行に対して真を返します。また、それ以外の行に対しては偽を返します。このSQL文の結果を以下に示します。