スケーラブルデータベースサーバ 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.