構文
用途
XMLSerialize
は、value_expr
の内容を含む文字列またはLOBを作成します。
DOCUMENT
を指定する場合、value_expr
は有効なXML文書である必要があります。
CONTENT
を指定する場合、value_expr
は単一ルートのXML文書である必要はありません。ただし、有効なXMLコンテンツである必要があります。
datatype
の指定には、文字列型(VARCHAR2
またはVARCHAR
は使用可能、NVARCHAR2
は使用不可)、BLOB
またはCLOB
を使用できます。デフォルトはCLOB
です。
datatype
がBLOB
の場合は、ENCODING
句を指定して、指定したエンコーディングをプロローグで使用できます。xml_encoding_spec
は、XMLエンコーディング宣言(encoding="..."
)です。
XML宣言でstring_literal
として指定したバージョン(<?xml version="..." ...?>
)を使用するには、VERSION
句を指定します。
意味のないすべての空白を出力から取り除くには、NO
INDENT
を指定します。出力をN
個の空白の相対インデントを使用して出力整形するには、INDENT SIZE =
N
を指定します。N
は整数です。N
が0
の場合、出力整形によって各要素の後に改行文字が挿入され、各要素は独自の行に配置されますが、その他の意味のないすべての空白は出力で省略されます。SIZE
を指定せずにINDENT
を指定すると、2個の空白インデントが使用されます。この句を指定しない場合、動作(出力整形されるかどうか)は予測不能です。
HIDE DEFAULTS
およびSHOW DEFAULTS
は、XMLスキーマベースのデータにのみ適用されます。SHOW DEFAULTS
を指定し、XMLスキーマがデフォルト値を定義するオプションの要素または属性が入力データにない場合、それらの要素または属性はデフォルト値を使用して出力に含まれます。HIDE DEFAULTS
を指定した場合、そのような要素または属性は出力に含まれません。HIDE DEFAULTS
がデフォルトの動作です。
関連項目: このファンクションの詳細は、『Oracle XML DB開発者ガイド』を参照してください。 |
例
次の文は、DUAL
表を使用して、XMLSerialize
の構文を示します。
SELECT XMLSERIALIZE(CONTENT XMLTYPE('<Owner>Grandco</Owner>')) AS xmlserialize_doc FROM DUAL; XMLSERIALIZE_DOC ---------------- <Owner>Grandco</Owner>