一  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 文件时,应使用二进制文本(而非文本方式)。


注: 不要使用 WSF 文件格式来在不同平台上的 DB2 数据库之间传输数据,这样做可能会导致丢失数据。而是,应该使用 PC/IXF 文件格式。