我们今天主要向大家讲述的是DB2数据库所支持的某些外部文件格式的正确讲解,如果你对DB2数据库所支持的某些外部文件格式的正确讲解心存好奇的话,以下的文章将会揭开它的神秘面纱。
在DB2数据库维护中,有项工作可能经常需要处理。如在数据库投入生产使用之前,往往需要在数据库中建立大量的信息。这步工作很多都是通过数据导入来完成的,即将数据直接从某个文件中导入到数据库系统中。
在数据导入之前,DB2数据库系统往往会对外部文件的格式进行仔细的检查。如果外部文件的格式不符合数据库的强制性要求,数据库就会拒绝导入数据。笔者这次要给大家介绍的就是DB2数据库(DB2数据导入的四大注意事项)支持哪些外部文件格式。希望通过这个分析能够帮助数据库管理员减轻数据导入导出过程中的工作量。
DB2数据库所支持的外部文件格式的讲解之定界的ASCII文件。
定界的ASCII文件,在数据库领域内应用的是比较广泛的。基本上任何一个数据库都支持这种格式的外部文件。不过各个数据库对于定界ASCII文件的分隔符的要求是不同的。在DB2数据库中,分隔符好用来标识数据元素的起始位置和结束位置。一般来说,DB2数据库支持如下几种分隔符。一是字符分隔符。这个字符分隔符主要用来界定字符型数据类型的起始位置。
默认情况下,在DB2数据库(提高DB2数据备份与恢复的效率)中使用双引号来作为字符分隔符。这个跟其他数据库有所不同。如在Oracle数据库中,利用定界的ASCII文件导入数据的时候,其会自动判断数据是否是字符型的数据类型,即不需要使用这个字符分隔符。二是列分隔符,即用来界定字段的起始位置。大部分情况下,都采用逗号(英文状态)来作为列的分隔符。
不过用户可以根据自己的需要来设置不同的列分隔符,如冒号或者分号等等。无论是哪一种符号来做列分隔符,一般情况下都需要满足一个前提条件,即必须是英文输入环节下的符号。如果是中文状态下的逗号或者分号,则会当作普通字符来对带。三是行分隔符。行分隔符是一个比较特殊的分隔符,因为其所采取的操作系统平台不同,其采用的行分隔符是不同的。
如在Windows操作系统上,行分隔符就是普通的换行符。而在Linux等操作系统上,虽然也是换行符,但是两个操作系统上换行符是不同的。如在Linux操作系统上打开Windows操作系统上建立的定界ASCII文件,则格式会混乱。如所有记录在同一行中显示,好像没有分行一样。
为此在导入数据时,如果这个定界文件是在Windwos操作系统上建立的,而DB2数据库则是不属在Linux操作系统上,就无法正常导入导DB2数据库中。而需要先对格式进行转换,将换行符转换为Linux操作系统所能够识别的换行符。这一点数据库管理员必须要引起足够的重视。
根据上面的规则,如下记录就是DB2数据库所能够支持的格式:
1001,“office”,2323,“BeiJing”,-233
注意,如果在外部文件中,字符串的值中包含列分隔符时(如逗号列分隔符),则这个字符串分隔符是必须的。也就是说,如果要导入的数据是字符型数据的话,必须要使用双引号括起来。如果没有列分隔符好的话,则这个字符串分隔符号可有可无。如Bei,Jing这个字符串,如果不用双引号括起来的话,DB2数据库系统就会认为他是两个字段,而不是一个字符串。
此时就需要使用字符分隔符将其引用起来,告诉数据库系统这是一个字符串。虽然这个定界的ASCII文件可以用来转换大多数的数据类型,如字符型数据、数字型数据、日期型数据等等。但是如果外部文件中包含二进制数据的话,则采用这个定界的ASCII文件不是很好的选择。
另外就是如果文件建立的平台与DB2数据库所在的平台所采用的操作系统平台不同,也不建立采用这个ASCII定界文件。如果遇到这种情况的话,笔者建立采用PC集成交换格式的外部文件。***需要提醒的是,在定界的ASCII文件中,数据行的***长度没有限制。
但是单独列的值的***长度不能够超过32KB。则只是从ASCII文件的角度来说的。在将文件导入到数据库的时候,还需要注意DB2数据库表中字段的大小能否容纳这个外部文件中字段的值。
【编辑推荐】