説明
この関数は、XMLTypeデータをVARCHAR、VARCHAR2、CLOB、またはBLOB型にシリアライズし、パラメータでフォーマットを指定できます。
構文
XMLSERIALIZE
( { DOCUMENT | CONTENT } value_expr [ AS datatype ]
[ ENCODING xml_encoding_spec ]
[ VERSION string_literal ]
[ NO INDENT | { INDENT [SIZE = number] } ]
[ { HIDE | SHOW } DEFAULTS ]
)
パラメータの説明
フィールド |
説明 |
|---|---|
| DOCUMENT | 解釈する内容を指定します。XML Document仕様に準拠している必要があります。 |
| CONTENT | 解釈する内容は有効なXMLフラグメントである必要がありますが、必ずしも構文的に正しいとは限りません。 |
| AS datatype | 戻り値の型を指定します。VARCHAR、VARCHAR2、BLOB、または CLOB として定義でき、デフォルトは CLOB です。戻り値の型が BLOB の場合は ENCODING を指定できます。 |
| ENCODING | 指定されたエンコーディングを使用します。 |
| VERSION | バージョンを指定します。 |
| NO INDENT ELEMENT | 階層間で改行せず、インデントしないことを指定します。 |
| INDENT SIZE | インデントのスペース数を設定します。0に設定すると、ELEMENT 階層間で改行のみ行われ、インデントされません。デフォルト値は2です。 |
| HIDE | SHOW DEFAULTS | XML Schemaで定義されたデフォルト値を表示するかどうかを指定します。 |
戻り値の型
VARCHAR、VARCHAR2、CLOB、またはBLOBデータ型を返します。
例
obclient> SELECT XMLSERIALIZE(CONTENT XMLPARSE(CONTENT 'aaa' WELLFORMED) AS varchar2(100) VERSION '1.0') AS RES FROM DUAL;
+---------------------------+
| RES |
+---------------------------+
| <?xml version="1.0"?>
aaa |
+---------------------------+
1 row in set
obclient> SELECT XMLSERIALIZE(DOCUMENT XMLPARSE(DOCUMENT '<?xml version="1.0" encoding="UTF-8"?>
<note>
<to>Tove</to>
<FROM>Jani</FROM>
<heading>Reminder</heading>
<body><p>Do not forget me this weekend!</p></body>
</note>') AS varchar2(200) NO INDENT) AS RES FROM DUAL;
+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
| RES |
+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
| <?xml version="1.0" encoding="UTF-8"?><note><to>Tove</to><FROM>Jani</FROM><heading>Reminder</heading><body><p>Do not forget me this weekend!</p></body></note> |
+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set
obclient> SELECT XMLSERIALIZE(DOCUMENT XMLPARSE(DOCUMENT '<?xml version="1.0" encoding="UTF-8"?>
<note>
<to>Tove</to>
<FROM>Jani</FROM>
<heading>Reminder</heading>
<body><p>Do not forget me this weekend!</p></body>
</note>') AS varchar2(200)) AS RES FROM DUAL;
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| RES |
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| <?xml version="1.0" encoding="UTF-8"?>
<note>
<to>Tove</to>
<FROM>Jani</FROM>
<heading>Reminder</heading>
<body>
<p>Do not forget me this weekend!</p>
</body>
</note>
|
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set