天天看點

Export/Import/load 實用程式檔案格式

一  Export/Import/load 實用程式檔案格式

前幾天面試ibm,被問到很小的一個細節,export 導出的檔案格式del 和ixf 有什麼差別?于是查找了相關的資料:

以下描述了 DB2® export 實用程式、import 實用程式和 load 實用程式支援的五種作業系統檔案格式:

DEL 定界 ASCII,用于各種資料庫管理器和檔案管理器之間的資料交換。這是用來存儲資料的常用方法,它使用特殊字元定界符來隔開列值。

ASC 非定界 ASCII,用于從其他應用程式導入或裝入資料,這些應用程式使用已對齊的列資料建立純文字檔案。

PC/IXF PC 版本的內建交換格式(IXF),這是在資料庫管理器中進行資料交換的首格式。PC/IXF 是對資料庫表的結構化描述,該資料庫表包含内部表的外部表示。

WSF 工作表格式,用于 Lotus® 1-2-3® 和 Symphony 之類的産品的資料交換。load 實用程式不支援此檔案格式。

 CURSOR 對 SQL 查詢聲明的遊标。僅 load 實用程式支援此檔案類型。

  使用 DEL、WSF 或 ASC 資料檔案格式時,應在導入檔案前定義表,包括其列名和資料類型。作業系統檔案字段中的資料類型将轉換為資料庫表中相應的資料類型。import 實用程式接受帶有輕微不相容問題的資料,包括導入時可能帶有填充或截斷的字元資料,以及導入到不同類型的數字字段中的數字資料。

在使用 PC/IXF 資料檔案格式時,開始導入操作之前表不一定要存在。但不必定義使用者定義的單值類型(UDT),否則會接收到未定義名稱錯誤(SQL0204N。同樣,導出至 PC/IXF 資料檔案格式時,UDT 将存儲在輸出檔案中。

使用 CURSOR 檔案類型時,必須在開始裝入操作之前定義該表,包括其列名和資料類型。SQL 查詢的列類型必須與目标表中的相應列類型相容。在開始裝入操作之前,指定的遊标不一定要打開。無論是否使用遊标來訪存行,load 實用程式都将處理與指定遊标相關聯的查詢的完整結果。

二   在平台之間移動資料 - 檔案格式注意事項

       在跨平台導出、導入或裝入資料時,相容性至關重要。下列各節描述在不同作業系統之間移動資料時的 PC/IXF、定界 ASCII(DEL)和 WSF 檔案格式注意事項。

PC/IXF 檔案格式 

       跨平台傳輸資料時,建議您使用 PC/IXF 檔案格式。PC/IXF 檔案使 load 實用程式或 import 實用程式能夠以獨立于機器的方式來處理(通常依賴于機器的)數字資料。例如,數字資料在 Intel® 與其他硬體體系結構上的存儲和處理方式是不同的。

       為了在 DB2® 系列中的所有産品間提供 PC/IXF 檔案的相容性,export 實用程式使用 Intel 格式的數字資料建立檔案,而 import 實用程式将使用此格式。

       根據硬體平台,DB2 産品會在導出和導入操作期間 Intel 與非 Intel 格式之間轉換數字值(使用位元組逆轉)。

       基于 UNIX® 的 DB2 資料庫實作不會在導出期間建立多部件 PC/IXF 檔案。但是,它們允許您導入由 DB2 建立的多部件 PC/IXF 檔案。導入此類型的檔案時,所有部件應該在同一個目錄中,否則會傳回錯誤。

       由基于 UNIX 的 DB2 export 實用程式實作建立的單部件 PC/IXF 檔案可由 DB2 資料庫 Windows® 版導入。

定界 ASCII(DEL)檔案格式

根據建立 DEL 檔案的作業系統不同,DEL 檔案是有差别的。這些差别是:

行分隔符

基于 UNIX 的文本檔案使用換行(LF)字元。

不基于 UNIX 的文本檔案使用回車符/換行符(CRLF)序列。

 檔案結束符

基于 UNIX 的文本檔案沒有檔案結束符。

不基于 UNIX 的文本檔案有檔案結束符(X'1A')。

由于 DEL 導出檔案是文本檔案,是以可以将它們從一個作業系統傳輸到另一個作業系統。如果以文本方式傳輸檔案,檔案傳輸程式就可以處理依賴于作業系統的差别;以二進制方式傳輸檔案時,不會執行行分隔符和檔案結束符轉換操作。

注: 如果字元資料字段包含行分隔符,在檔案傳輸期間就會轉換這些字元。此項轉換将導緻意外地更改資料,是以,建議您不要使用 DEL 導出檔案來跨平台移動資料。而是,應該使用 PC/IXF 檔案格式。

WSF 檔案格式

WSF 格式檔案中的數字資料是使用 Intel 機器格式存儲的。此格式允許在不同 Lotus® 操作環境(如基于 Intel 的系統和基于 UNIX 的系統)之間傳輸和使用 Lotus WSF 檔案。

由于内部格式一緻,是以在另一平台上運作的 Lotus 1-2-3® 或 Symphony 可以使用從 DB2 産品中導出的 WSF 檔案。DB2 産品還可導入在不同平台上建立的 WSF 檔案。

在作業系統之間傳輸 WSF 檔案時,應使用二進制文本(而非文本方式)。