スケーラブルデータベースサーバ HiRDB Version 8 SQLリファレンス
XQueryを評価し,その結果のXML型の値を生成します。
XMLQUERY ( XQuery問合せ PASSING BY VALUE XML問合せ引数 〔,XML問合せ引数 〕… 〔 RETURNING SEQUENCE 〔 BY VALUE 〕〕 EMPTY ON EMPTY ) XQuery問合せ ::= 文字列定数 XML問合せ引数 ::= {XML問合せ文脈項目 | XML問合せ変数} XML問合せ文脈項目 ::= 値式 〔 BY VALUE 〕 XML問合せ変数 ::= 値式 AS XQuery変数識別子 〔 BY VALUE 〕 |
評価するXQueryを文字列定数で指定します。XQueryの指定方法については,「1.16 XQuery」を参照してください。
XQueryに渡す引数を指定します。
XML問合せ引数としてXQueryに渡す,XQueryシーケンスに含まれるXQuery項目の親プロパティは空になります。また,異なるXML問合せ引数に指定したXQueryシーケンスに,同じXML型の値の同じ部分を表すノードが含まれていた場合でも,XQueryの評価ではそれらを異なるノードとして扱います。
XQueryの評価対象である文脈項目を指定します。
指定しない場合は,XQueryの評価対象の文脈項目は設定しないで,XQuery問合せに指定したXQueryを一度評価します。
なお,この項目はPASSING句中に一つしか指定できません。
XQuery問合せに指定された,XQuery中のXQuery変数に値を渡す場合に指定します。
表1-41 XQuery変数に渡す値のデータ型と,変換後のXML型の値の形式
データ型 | 変換後の形式 |
---|---|
INTEGER | xs:int型の値※ |
SMALLINT | xs:int型の値※ |
DECIMAL | xs:decimal型の値※ |
FLOAT | xs:double型の値※ |
SMALLFLT | xs:double型の値※ |
CHAR | xs:string型の値※ |
VARCHAR | xs:string型の値※ |
MCHAR | xs:string型の値※ |
MVARCHAR | xs:string型の値※ |
DATE | xs:date型の値※ |
TIME | xs:time型の値※ |
TIMESTAMP | xs:dateTime型の値※ |
XML | 変換しません (値式に指定したXML型の値と同じ形式になります) |
書籍管理表の書籍情報列から,埋込み変数(category)で指定されたカテゴリの書籍のタイトルを取得します。
SELECT XMLSERIALIZE( XMLQUERY('/書籍情報[カテゴリ=$CATEGORY]/タイトル' PASSING BY VALUE 書籍情報, :category AS CATEGORY RETURNING SEQUENCE BY VALUE EMPTY ON EMPTY) AS VARCHAR(32000)) FROM 書籍管理表
XML型の値を直列化(文字列に変換)した,VARCHAR型又はBINARY型の値を生成します。
XMLSERIALIZE ( 〔 CONTENT 〕 値式 AS データ型 〔 VERSION '1.0' 〕 〔{ INCLUDING XMLDECLARATION |EXCLUDING XMLDECLARATION }〕) |
指定の有無によって,結果の形式は変わりません。ISO規格との互換のためにサポートしています。
結果の形式は,整形式XML文書の形式である必要はありません。
VARCHAR型又はBINARY型の値を生成するXML型の値を指定します。
指定できるものを次に示します。
結果のデータ型を指定します。
指定できるデータ型を次に示します。
結果が指定したデータ型の最大長に格納できない場合は,エラーとなります。
結果のXMLのバージョンを指定します。省略した場合は,'1.0'を仮定します。
結果のXMLにXML宣言(例:'<?xml version="1.0" encoding="UTF-8"?>')を含めるかどうかを指定します。省略した場合は, EXCLUDING XMLDECLARATIONを仮定します。
要素ノードの文字列表現 ::= { 開始タグ 子ノードの文字列表現 終了タグ | 空要素タグ } 子ノードの文字列表現 ::= { 要素ノードの文字列表現 | 処理命令ノードの文字列表現 | コメントノードの文字列表現 | テキストノードの文字列表現 } 開始タグ ::= < 修飾名 〔 空白 XML名前空間の文字列表現 〕… 〔 空白 属性ノードの文字列表現 〕… > 終了タグ ::= </ 修飾名 > 空要素タグ ::= < 修飾名 〔 空白 XML名前空間の文字列表現 〕… 〔 空白 属性ノードの文字列表現 〕… /> |
属性ノードの文字列表現 ::= 修飾名 等号演算子 "属性値" |
置き換える文字 | 対応する文字列 |
---|---|
&(アンパーサンド) | & |
< (小なり演算子) | < |
> (大なり演算子) | > |
"(引用符) | " |
' (アポストロフィ) | ' |
処理命令ノードの文字列表現::= <? 処理命令ターゲット 空白 〔 処理命令ノードの内容 〕?> |
コメントノードの文字列表現::= <!-- コメントノードの内容 --> |
テキストノードの文字列表現::= テキスト値 |
置き換える文字 | 対応する文字列 |
---|---|
&(アンパーサンド) | & |
< (小なり演算子) | < |
> (大なり演算子) | > |
置き換える文字 | 対応する文字列 |
---|---|
& (アンパーサンド) | & |
< (小なり演算子) | < |
> (大なり演算子) | > |
書籍管理表の書籍情報列の値を,VARCHAR型の値として取得します。
SELECT XMLSERIALIZE(書籍情報 AS VARCHAR(32000) INCLUDING XMLDECLARATION) FROM 書籍管理表
XML文書からXML型の値を生成します。
XMLPARSE( DOCUMENT 値式 〔 AS データ型 〕 〔 WHITESPACE指定 〕 ) WHITESPACE指定 ::= { PRESERVE | STRIP }WHITESPACE |
値式に指定したXML文書が,整形式XML文書であることを表します。このオペランドを省略することはできません。
XML型の値を生成する整形式XML文書を指定します。指定できるデータ型を次に示します。
値式のデータ型を指定します。値式に埋め込み変数又は?パラメタを指定する場合は,ASデータ型を必ず指定してください。ASデータ型を指定した場合は,値式に埋込み変数及び?パラメタ以外を指定できません。
XML文書に含まれる空白類の取り扱い方を指定します。空白類は,空白(X'20'),水平タブ(X'09'),改行(X'0A'),及び復帰(X'0D')です。省略時は,STRIP WHITESPACEを仮定します。
なお,WHITSPACE指定に関係なく,復帰(X’0D’)及び復帰改行(X’0D0A’)は,改行(X’0A’)に置き換えます。続いて,WHITESPACE指定に従った処理を行います。
XML文書のencoding属性 | HiRDBの文字コード | ||
---|---|---|---|
sjis (シフトjis漢字) |
ujis (EUC日本語漢字) |
utf-8 (Unicode(UTF-8)) |
|
Shift_JIS | ○ | × | × |
EUC-JP | × | ○ | × |
UTF-8 | × | × | ○ |
US-ASCII | ○ | ○ | ○ |
上記以外 | × | × | × |
書籍管理表にBINARY型の埋込み変数(bookxml)に格納されたXML文書を挿入します。
INSERT INTO 書籍管理表 VALUES(310494321, XMLPARSE(DOCUMENT :bookxml AS BINARY(32000)))
All Rights Reserved. Copyright (C) 2006, 2016, Hitachi, Ltd.