XMLSERIALIZE
XMLSERIALIZE 函數會傳回從 XML-expression 引數產生之指定資料類型的序列化 XML 值。
- 內容
- 指定可指定任何 XML 值,且序列化的結果是以這個輸入值為基礎。
- XML 表示式
- 傳回內建 XML 字串值的表示式。 這是序列化程序的輸入。
- AS data-type
- 指定結果類型。 指定結果資料類型的隱含或明確長度屬性必須足以包含序列化輸出。
如果指定 CCSID ,且 資料類型 是 GRAPHIC、VARGRAPHIC 或 DBCLOB ,則 CCSID 必須是 Unicode CCSID。
如果未指定 CCSID 屬性,則會依照 CAST 規格中的說明來決定 CCSID。
- VERSION '1.0'
- 指定序列化值的 XML 版本。 唯一支援的版本是 '1.0' ,必須指定為字串常數。
- INCLUDING XMLDECLARATION 或 INCLUDING XMLDECLARATION
- 指定是否將 XML 宣告併入結果中。 預設值是 EXCLINXING XMLDECLARATION。
- 排除 XMLDECLARATION
- 指定結果中不包含 XML 宣告。
- INCLUDING XMLDECLARATION
- 指定將 XML 宣告併入結果中。 The XML declaration is the string '<?xml version="1.0" encoding="encoding-name"?>, where encoding-name matches the CCSID of the result data type.
如果 XML 表示式 的結果可以是空值,則結果可以是空值; 如果 XML 表示式 的結果是空值,則結果是空值。
範例
範例 1: Serialize into CLOB of UTF-8,這是 XMLElement 函數所傳回的 XML 值,它是一個簡式 XML 元素,以 "Emp" 作為元素名稱,並以員工名稱作為元素內容:
SELECT e.empno, XMLSERIALIZE(XMLELEMENT(NAME "Emp",
e.firstnme || ' ' ||e.lastname)
AS CLOB(100) CCSID 1208) AS "result"
FROM employee e WHERE e.lastname = 'SMITH'結果看起來類似下列結果: EMPNO result
----- ---------------------
000250 <Emp>DANIEL SMITH</Emp>
000300 <Emp>PHILIP SMITH</Emp>範例 2: 序列化為 BLOB 類型的字串, XMLXX_ENCODE_CASE_ONE Element 函數傳回的 XML 值:
SELECT XMLSERIALIZE(XMLELEMENT(NAME "Emp",
e.firstnme || ' ' ||e.lastname)
AS BLOB(1K)
VERSION '1.0') AS "result"
FROM employee e WHERE e.empno = '000300'結果看起來類似下列結果: result
---------------------
<Emp>PHILIP SMITH</Emp>
範例 3: 序列化為 CLOB 類型的字串, XMLELEMENT 函數傳回的 XML 值。 包括 XMLDECLARATION:
SELECT e.empno, e.firstnme, e.lastname,
XMLSERIALIZE(XMLELEMENT(NAME "xmp:Emp",
XMLNAMESPACES('http://www.xmp.com' as "xmp"),
XMLATTRIBUTES(e.empno as "serial"),
e.firstnme, e.lastname
OPTION NULL ON NULL)
AS CLOB(1000) CCSID 1208
INCLUDING XMLDECLARATION) AS "Result"
FROM employee e WHERE e.empno = '000300'結果看起來類似下列結果: EMPNO FIRSTNME LASTNAME Result
------ --------- --------- -----------------------
000300 PHILIP SMITH <?xml version="1.0" encoding="UTF-8" ?>
<xmp:Emp xmlns:xmp="http://www.xmp.com"
serial="000300">PHILIPSMITH</xmp:Emp>
