Sybase bcp:BCP 数据文件中遇到意外的 EOF

Sybase bcp: Unexpected EOF encountered in BCP data-file

我有几个关于 bcp 的问题。 我正在尝试将数据从文本文件加载到 Sybase ASE 16.0。数据库在我的本地机器上(Win 7 64 位)。 我正在使用这个命令:

bcp dbname.owner.TO_INTS in "SomeInts.txt" -P password -S server -U sa -f "bcp_tblTO_INTS.fmt" -e "bcp.errlog.txt"

这是格式文件("bcp_tblTO_INTS.fmt"):

10.0 1 1 SYBINT4 0 5 "" 1 SEEMS_THIS_IS_IGNORED

目标 table 有一个列,定义为 INT: CREATE TABLE owner.TO_INTS ( FROM_INT INT NOT NULL ) LOCK ALLPAGES ON 'default' GO

我有两个问题。

  1. bcp 只会填充目标 table 如果数据中只有四个字符(即从 1000 到 9999 的值)。如果我使用超出此范围的值,我会得到:

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

  1. 未正确填充值:

输入值(在文件中):1000 填充为(在 Sybase 中):808464433

输入值(在文件中):9999 填充为(在 Sybase 中):960051513

文件编码为ANSI。 EOL 字符为 LF。

我做错了什么?

谢谢 戴夫

由于您的文件只有一栏,删除格式文件并改用 -c 选项。这将以 字符(纯文本)模式对文件进行 BCP,应该可以解决问题。

如前所述,您可能需要将 EOL 字符更改为 CRLF