XMLSERIALIZE

構文

目的

XMLSerializeは、value_exprの内容を含む文字列またはLOBを作成します。

XMLSERIALIZEによって返されるすべてのLOBは読取り専用になります。

DOCUMENTを指定する場合、value_exprは有効なXML文書である必要があります。

CONTENTを指定する場合、value_exprは単一ルートのXML文書である必要はありません。ただし、有効なXMLコンテンツである必要があります。

datatype

指定できるdatatypeは、次のとおりです:

  • VARCHAR2またはVARCHAR (NVARCHAR2を除く)

  • BLOB、またはオプションreferencevalueを指定したCLOB。デフォルトはreferenceです。

  • BLOBの場合は、ENCODING句を指定すると、指定したエンコーディングをプロローグで使用できます。xml_encoding_specは、XMLエンコーディング宣言(encoding="...")です。

デフォルトの型はCLOBです。

XML宣言でstring_literalとして指定したバージョン(<?xml version="..." ...?>)を使用するには、VERSION句を指定します。

意味のないすべての空白を出力から取り除くには、NO INDENTを指定します。出力をN個の空白の相対インデントを使用して出力整形するには、INDENT SIZE = Nを指定します。Nは整数です。N0の場合、出力整形によって各要素の後に改行文字が挿入され、各要素は独自の行に配置されますが、その他の意味のないすべての空白は出力で省略されます。SIZEを指定せずにINDENTを指定すると、2個の空白インデントが使用されます。この句を指定しない場合、動作(出力整形されるかどうか)は予測不能です。

HIDE DEFAULTSおよびSHOW DEFAULTSは、XML Schemaに基づくデータにのみ適用されます。SHOW DEFAULTSを指定した場合、XML Schemaでデフォルト値が定義されているオプションの要素や属性が入力データに存在しないと、それらの要素や属性はそのデフォルト値とともに出力に含められます。HIDE DEFAULTSを指定した場合、このような要素や属性は出力に含められません。HIDE DEFAULTSがデフォルトの動作です。

関連項目:

次の文は、DUAL表を使用して、XMLSerializeの構文を示します。

SELECT XMLSERIALIZE(CONTENT XMLTYPE('<Owner>Grandco</Owner>')) AS xmlserialize_doc
   FROM DUAL;

XMLSERIALIZE_DOC
----------------
<Owner>Grandco</Owner>