ページの先頭行へ戻る
Symfoware Server V11.0.x SQLリファレンス
Symfoware

2.5.6 XMLQUERY関数

機能

XMLQUERY関数は、XQuery式の評価結果であるXMLデータを返却する関数です。

記述形式

構文要素の構成

参照項番

一般規則

XQuery式
  • XMLデータの文字列定数で指定します。

参照

XQuery式に指定する検索式の詳細は、“XQueryリファレンス”を参照してください。

注意

XQuery式に指定する検索式は文字列定数で表現するため、検索式の記述内容に' (シングルクォーテーション)を指定することはできません。' (シングルクォーテーション)を含む文字列リテラルを指定する場合には、既定義エンティティー参照の'を指定してください。
既定義エンティティー参照の詳細は、“XQueryリファレンス”を参照してください。

A要素のテキストノードの値が「'ABC銀行'」を表すXQuery式

XMLQUERY('/A[text()="'ABC銀行'"]'
   PASSING 伝票)
  • XQuery式に空文字または空白文字列のみ指定した場合、XMLQUERY関数はエラーになります。

  • XQuery式の問合せの評価時にエラーが発生した場合、XMLQUERY関数はエラーになります。

PASSING句
  • PASSING句の値式にはXQuery式の検索対象となるXMLデータを指定します。

  • PASSING句の値式のデータ型は、BLOB型であることが必要です。

  • PASSING句に以下の値式を指定することはできません。

    • 集合関数指定

    • CAST指定

    • XMLQUERY関数

    • ファンクションルーチン

  • 値式に指定するXMLデータは、正しいデータ形式であることが必要です。誤ったデータ形式であることを検出した場合、XMLQUERY関数はNULLを返します。

参照

XMLデータの正しい形式に関しては、“アプリケーション開発ガイド(共通編)”の“SQL/XMLで扱えるデータ形式”を参照してください。

  • PASSING句を省略、またはPASSING句の値式の値がNULLである場合、XMLQUERY関数の評価結果は不定になります。

DESCRIBE情報について
  • 値式に動的パラメタ指定が指定された場合のDESCRIBE情報を以下に示します。

    表2.40 動的パラメタ指定が指定された場合のDESCRIBE情報

    オペランド

    DESCRIBE情報

    PASSING句の値式

    BLOB型

使用例

製品番号が100番台の製品を発注している、会社番号が60番台の取引会社の会社名を検索します。

SELECT  会社表.会社番号,
        XMLQUERY('/取引先会社情報[発注/製品番号/text() >= 100 and 
                  発注/製品番号/text() < 200]/会社名/text()'
                  PASSING  会社表.会社情報)  AS 会社名
FROM  会社表
WHERE  会社番号 BETWEEN 60 AND 69

上記の問合せにおける、取引先会社と発注製品の情報を以下に示します。

XMLQUERY関数の指定により、会社表の会社情報列に格納された各XMLデータに対して、XQuery式'/取引先会社情報[発注/製品番号/text() >= 100 and 発注/製品番号/text() < 200]/会社名/text()'が評価されます。XQuery式の評価結果より、XMLQUERY関数は図中の会社番号が61と62の行に対して、XMLデータから抽出した会社名を返します。また、会社番号が63の行に対してはNULLを返します。このSQL文の結果を以下に示します。

会社番号

会社名

61

アダム電気

62

アイデア商事

63

NULL