2011-11-16 36 views
1

我有一個包含數據的dat文件。文件中的一行如下所示:在加載數據時忽略DB2導入命令中的DAT文件中的行尾字符

HHHH-III|AAAA0000536101|2011/11/16|0100002MM000 

使用db2 import命令將此數據加載到DB2表中。

問題: 數據中的最後一個字段與dat文件中該行末尾的「新行」字符一起加載,即0100002MM000在末尾加載了一些不可見的字符。

相同的字段正在從其他文件加載到其他表中。但在另外dat文件是在中心某處如下一行:

2011/11/16|0100002MM000|HHHH-III|AAAA|BBBBB|KDKDKDKDDKD MANAGED|C 

所以後來從第一表0100002MM000在第二臺出現故障比較0100002MM000。

如何解決此問題?

在這種情況下

所以,

回答

3

是否有可能該文件具有Windows的「\ r \ n」(CRLF)行終止,而進口量預計Unix的「\ n」終止器,因此它的導入「 \ r「在最後?如果是這樣,修復只是將文件轉換爲Unix格式 - 有很多工具可以做到這一點,或者你可以很容易地編程。

檢查是否通過在二進制文件編輯器中打開文件並查看行終止符 - 是否使用0x0D 0x0A(或UTF-16等效),那麼這是Windows行終止符。即使它是而不是,那麼在二進制文件編輯器中查找會在行末顯示 - 可能是空字符(0x00),它以某種方式進入了該文件。如果是這種情況,再次它應該很容易剝離,但您應該先看看是否可以通過修復生成文件的代碼開始時避免該問題。 (此可能不在您的控制之內,但它可能不是。)

+0

DOS2UNIX的命令工作就像魅力! – Nik

相關問題