説明
この関数は、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