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