今天在做bcp批量导入数据的测试时,每次数据导入完后,在err.txt 里都会有错误,错误内容如下:

Unexpected EOF encountered in BCP data-file.
bcp copy in partially failed

bcp.sql的内容入下:

bc||1||2010-07-27 14:40:00&&
bc||1||2010-07-27 14:40:00&&
bc||1||2010-07-27 14:40:00&&
bc||1||2010-07-27 14:40:00&&
bc||1||2010-07-27 14:40:00&&
bc||1||2010-07-27 14:40:00&&
bc||1||2010-07-27 14:40:00&&
bc||1||2010-07-27 14:40:00&&

bcp命令如下

bcp tt in ./bcp.sql -Unms -Penetmanager -SSYBASE -c -t'||' -r'&&' -b10 >./err.txt 2>&1

行结束符设置的是 && ,测试了半天都是还报那个错误。折腾了半天,结果想起来在每行的结束处有个看不见的换行符 \n,命令改成

bcp tt in ./bcp.sql -Unms -Penetmanager -SSYBASE -c -t'||' -r'&&\n' -b10 >./err.txt 2>&1

问题得以解决了。果然是看不见的回车符惹的祸