【问题标题】:Sybase bcp: Unexpected EOF encountered in BCP data-fileSybase bcp:在 BCP 数据文件中遇到意外的 EOF
【发布时间】:2015-03-05 12:37:56
【问题描述】:

我遇到了一些关于 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

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

我有两个问题。

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

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

  1. 未正确填充值:

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

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

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

我做错了什么?

谢谢 戴夫。

【问题讨论】:

  • 你试过没有Format文件吗?如果它只有 1 列,则不需要它。只需使用-c 标志来表示纯文本输入文件。
  • 太好了,谢谢。使用“-c”修复了所有问题(如果我制作了 EOL 字符 CRLF)。如果您想将其添加为答案,那么我会确认。

标签: sybase sap-ase bcp


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2022-11-11
    • 2019-02-17
    • 2014-12-07
    • 1970-01-01
    • 2013-09-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-23
    相关资源
    最近更新 更多