【发布时间】: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
我有两个问题。
- bcp 只会在数据中只有四个字符(即从 1000 到 9999 的值)时填充目标表。如果我使用超出此范围的值,我会得到:
Unexpected EOF encountered in BCP data-file.
bcp copy in failed
- 未正确填充值:
输入值(在文件中):1000 填充为(在 Sybase 中):808464433
输入值(在文件中):9999 填充为(在 Sybase 中):960051513
文件编码为 ANSI。 EOL 字符是 LF。
我做错了什么?
谢谢 戴夫。
【问题讨论】:
-
你试过没有Format文件吗?如果它只有 1 列,则不需要它。只需使用
-c标志来表示纯文本输入文件。 -
太好了,谢谢。使用“-c”修复了所有问题(如果我制作了 EOL 字符 CRLF)。如果您想将其添加为答案,那么我会确认。