我有一个包含 8 位数字的文本文件,我想将其复制到我创建的 Sybase 表中:
创建表 foo ( id numeric(20) )
我使用的是数字,因此我可以与现有表中的另一个数字列连接。
我的 bcp 命令的格式信息是: 10.0 1 1 符号数字 1 12 " “ 1 ID 20 0
bcp 复制失败,并多次重复出现以下消息:
CSLIB 消息:- L0/O0/S0/N20/1/0: cs_convert:cslib用户api层:公共库错误:转换/操作导致溢出。
我没有看到任何可能导致输入文本文件溢出的数字。
关于如何复制这些数据和/或为什么失败有什么建议吗? 谢谢!
我将表的 id 更改为 int。 bcp没有出错,但是数据不正确。
所以我将 id 的表更改为 varchar 并且 bcp 工作正常。 然后我将 id 改回数字(20)并且它起作用了。
这并没有解决 bcp 问题,但确实给了我一个解决方案来获取我需要的数据,这是真正的目标。
尝试使用 -c 参数而不使用 -f。它不会提示格式化并且可以正常工作。问题通常是格式使用的默认值不正确。
尝试在 bcp 格式文件中使用普通 SYBCHAR 而不是 SYBNUMERIC,bcp 会自动将 SYBCHAR 转换为 NUMERIC,不会有任何抱怨。