我有一个包含数据的dat文件。 从文件的行表示为如下:
HHHH-III|AAAA0000536101|2011/11/16|0100002MM000
该数据被装载在使用DB2导入命令DB2表。
问题:在数据的最后一个字段被用在dat文件即0100002MM000行的末尾的“新行”字符加载是越来越加载,并在最后的一些不可见字符。
同场其他表中加载其他文件。 但在另外dat文件是在如下行某处中心:
2011/11/16|0100002MM000|HHHH-III|AAAA|BBBBB|KDKDKDKDDKD MANAGED|C
所以后来,从第一台与0100002MM000在第二个表比较0100002MM000失败。
如何解决这个问题?
所以在这种情况下,
是否有可能该文件具有Windows的“\ r \ n”(CRLF)行终止,进口期待Unix的“\ n”终止器,因此它的导入为“\ r”结尾? 如果是这样,解决方法是只需将文件转换为Unix的格式 - 有很多周围的工具来做到这一点,或者你可以这样做很容易编程不够。
检查是否该由二进制文件编辑器打开这个文件,看行终止的情况下 - 如果它使用0X0D的0x0A(或UTF-16相当于一个),那么这就是Windows行终止。 即使它不是 ,找一个二进制文件编辑器会告诉你什么是在该行的末尾-也许有这已经到了那里莫名其妙空字符(0×00)。 如果是这样的话,又应该是易剥离,但你应该看看是否可以通过固定生成开始与文件中的代码避免在首位的问题。 (这可能是在你的控制,但它可能不是。)
也许你的数据还没有为DB2默认结构是相同的结构。 你必须通过指定更详细覆盖此行为。 看看http://publib.boulder.ibm.com/infocenter/db2luw/v9r7/topic/com.ibm.db2.luw.admin.cmd.doc/doc/r0008304.html
此外,还有进口分隔符不同DEL文件时谈论所有这些问题的链接: http://publib.boulder.ibm.com/infocenter/db2luw/v9r7/topic/com.ibm.db2.luw.admin。 dm.doc / DOC / r0011047.html
文章来源: ignoring end of line character in a DAT file in DB2 import command while loading data