程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> 關於SqlServer >> DB2 實用程序介紹之EXPORT實用程序(4)

DB2 實用程序介紹之EXPORT實用程序(4)

編輯:關於SqlServer


  導出 XML 數據

  隨著 DB2 9.1 中引入了本地 XML 支持,導出實用程序也被擴展,以支持 XML。如果沒有指定任何與 XML 相關的選項而導出一個表(用 XML 數據定義的),那麼相關的 XML 數據將被寫入到與導出的其他關系數據分開的一個或多個文件中。讓我們看一個例子。下面的 EXPORT 命令是在 PRODUCT 表上發出的,該表中定義了一個 XML 列:

  EXPORT TO prodexport.del DEL

  MESSAGES msg.out

  SELECT * FROM product

  在這個例子中,導出實用程序將生成兩個輸出文件。其中一個輸出文件是 prodexport.del,該文件將包含表中的關系數據和 XML data specifIEr (XDS)。

  

  XDS 是用名為 "XDS" 的一個 XML 標記表示的字符串。它具有一些屬性,用於描述關於列中實際的 XML 數據的信息。下面是 XDS 字符串中可能出現的一些屬性:

  FIL 指定包含 XML 數據的文件的文件名。
  OFF 指定 XML 數據在 FIL 屬性指定的文件中的字節偏移量。
  LEN 指定 FIL 屬性中指定的文件中的 XML 數據的字節長度。
  SCH 指定用於驗證 XML 文檔的 XML 模式的全限定 SQL 標識符。下一屏中將討論這個屬性。
  從前面 prodexport.del 的內容中可以看出,第一個 XML 數據存儲在 prodexport.del.001.XML 中,從 0 字節偏移位置開始,長度為 252 個字節。

  在這個例子中,導出實用程序生成的另一個文件是 prodexport.del.001.xml,該文件包含 XML 內容。導出的每個 XML 數據都被連接在一起寫入到這個文件中。下面是 prodexport.del.001.XML 文件的內容。

  

  使用 XML 選項和修飾符導出 XML 數據

  與導出大型對象一樣,您可以指定被導出 XML 文檔的存儲路徑,還可以指定輸出文件的文件名。考慮下面的例子:

  EXPORT TO prodexport.del DEL

  XML TO d:\XMLpath

  XMLFILE proddesc

  MODIFIED BY XMLINSEPFILES XMLNODECLARATION XMLCHAR

  XMLSAVESCHEMA

  MESSAGES msg.out

  SELECT * FROM product

  在這個例子中,PRODUCT 表的關系數據被導出到 prodexport.del 文件。然後,所有 XML 數據都被寫入到 XML TO 子句指定的目錄 d:\xmlpath 中。包含 XML 數據的文件被命名為 proddesc.ext.xml,其中 ext 是一個序列號(例如 proddesc.001.xml、proddesc.002.xml、proddesc.003.xml 等)。基本文件名是用 XMLFILE 選項定義的。

  您也許還注意到,這個例子中使用了一些修飾符。下面對所有與 XML 相關的修飾符作一個總結。
  用一個 XQuery 導出 XML 數據

  EXPORT 命令還允許指定一個 XQuery 語句,使導出實用程序將一個 XQuery 的結果導出到一個 XML 文件中。我們來看看下面的例子。

  EXPORT TO custexport.del 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 返回存儲在 CUSTOMER 表的 XML 列 INFO 下的每個客戶的電話號碼。這裡討論的所有 XML 選項和修飾符都適用於 XQuery 語句。因此,這個例子將為 XQuery 的每個結果生成單獨的 XML 文檔。這個文件存放在 d:\xmlpath 中,並且以 custphone.ext.xml 命名,其中 ext 是一個序列號。此外,文檔中不包括 XML 聲明標記。

  下面是導出的一個 XML 文檔的內容。

  

  從 Control Center 中導出

  除了從 DB2 命令行執行 EXPORT 命令外,還可以使用 Control Center 進行導出。從 Control Center 這個工具中,可以指定導出實用程序支持的所有選項和子句,例如大型對象和 XML 數據。如下圖所示,Schedule 選項卡允許您創建一個任務,並調度在給定時間運行的導出。

  

  XMLINSEPFILES 導致導出實用程序將導出的每個 XML 文檔寫入到不同的 XML 文件中。
  XMLNODECLARATION 表明導出 XML 數據無需使用 XML 聲明標記。默認情況下,XML 標記被寫在 XML 文檔的開頭,並包括一個編碼屬性。
  XMLCHAR 表明 XML 數據以字符碼頁編碼。默認情況下,XML 數據是以 Unicode 編碼的。當使用這個修飾符的時候,使用的是 codepage 文件類型修飾符或應用程序碼頁。
  XMLGRAPHIC 表明無論是 codepage 文件類型修飾符還是應用程序碼頁,導出的 XML 數據將以 UTF-16 碼頁編碼。注意,這個例子中沒有使用 XMLGRAPHIC。
  我們要介紹的最後一個選項是 XMLSAVESCHEMA。當插入一個 XML 文檔時,可以用一個 XML 模式對其進行驗證。XMLSAVESCHEMA 選項導致導出實用程序還保存用於每個導出的 XML 數據的 XML 模式。那個模式的全限定 SQL 標識符將被存儲為相應的 XML data specifIEr(XDS)中的一個 SCH 屬性。注意,如果沒有用 XML 模式驗證導出的 XML 文檔,或者該模式對象不再存在於數據庫中,那麼相應的 XDS 中將不包括 SCH 屬性。

  下面顯示了前面的導出例子的結果。

  

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved