DB2 9.1 引入原生 XML 支援,EXPORT 同步擴充 XML 匯出能力。本文說明預設 XML 匯出行為、XML Data Specifier (XDS) 結構、自訂 XML 匯出選項與 XQuery 直接匯出。
無 XML 相關選項時,XML 資料寫入獨立檔案,主資料檔存放 XDS 參考:
EXPORT TO prodexport.del OF DEL
MESSAGES msg.out
SELECT * FROM product; -- product 含 XML 欄位
產出兩個檔案:
prodexport.del:關聯資料 + XDS 標記prodexport.del.001.xml:串接所有 XML 文件XDS 為 XML 標記,屬性說明對應 XML 文件資訊:
| 屬性 | 含義 |
|---|---|
FIL | XML 檔案名稱 |
OFF | XML 文件在檔案中的位元組偏移量 |
LEN | XML 文件長度(位元組) |
SCH | 驗證用 XML Schema 完整 SQL 識別碼(若有) |
EXPORT TO prodexport.del OF DEL
XML TO d:\xmlpath
XMLFILE proddesc
MODIFIED BY XMLINSEPFILES XMLNODECLARATION XMLCHAR XMLSAVESCHEMA
MESSAGES msg.out
SELECT * FROM product;
XML TO:XML 檔案儲存目錄XMLFILE:基底檔名(產生 proddesc.001.xml、proddesc.002.xml...)XMLINSEPFILES:每個 XML 文件獨立檔案XMLNODECLARATION:省略 XML 宣告 <?xml ...?>XMLCHAR:以字元字碼頁編碼(預設 Unicode)XMLGRAPHIC:強制 UTF-16 編碼XMLSAVESCHEMA:在 XDS 中保存 Schema 識別碼可直接匯出 XQuery 結果為 XML 文件:
EXPORT TO custexport.del OF DEL
XML TO d:\xmlpath
XMLFILE custphone
MODIFIED BY XMLINSEPFILES XMLNODECLARATION
MESSAGES msg.out
SELECT XMLQUERY('$doc/customerinfo/phone' PASSING INFO AS "doc") FROM customer;
每個 XQuery 結果產生一個獨立 XML 檔案,檔名 custphone.001.xml、custphone.002.xml...,無 XML 宣告。
DB2 Control Center 提供完整圖形介面設定上述所有選項,含排程功能(Schedule 頁籤)可建立定期匯出作業。