我想要做的是将表复制到文件中,截断表并将数据复制回表中。
为此,我使用以下两个命令:
出:bcp TABLE out file.csv -S SERVER -U user -P password -r '\n' -t '^|' -c
入: bcp TABLE in file.csv -S SERVER -U user-P password-r '\n' -t '^|' -c -J iso_1 -b 5000
这是我得到的错误:
CSLIB Message: - L0/O0/S0/N36/1/0:
cs_convert: cslib user api layer: common library error: The result is truncated because the conversion/operation resulted in overflow.
有趣的部分(至少对我来说)是我只得到第一列是奇数的行的错误。从前 300 万行中,它减少了一半,所有行的第一列 ( the PK
) 都是奇数。
我尝试了不同的选项,但似乎都不起作用:charset
据我所知,没有大的列被截断,也没有carriage return
丢失。
任何帮助将不胜感激。
更新:创建格式文件后没有更多错误,但它只将一半数据复制回表中。
更新:我设法创建了一个可以工作并加载所有数据的格式文件,但我不能在另一台服务器上使用它(它在测试环境中工作,它需要在生产环境中运行),因为它说Attempt to read an unknown version of bcp format-file.
?我知道这意味着什么,但有没有办法找到版本的正确值?
已解决:在重新挖掘数据库后,似乎问题确实是数据不一致,因为VIEW
生产中用于复制表只复制了 25 列,但表有 26 列(有人更改了表,我没有'不知道也没有注意到它发生了)。修复了View
,现在它可以工作了。