【问题标题】:BCP issues - where am I going wrong here?BCP 问题 - 我在哪里出错了?
【发布时间】:2012-05-19 19:07:08
【问题描述】:

有人更改了我正在使用的 BCP 文件中的行和列分隔符。实际上, clumn 曾经是 |~ 并且 row 是默认的 \n 并且不需要规范。我现在似乎无法在文件上运行 BCP 而不会出现错误。

当我现在使用以下命令运行它时,我得到:“强制转换规范的字符值无效。”

这是我的确切命令语法,我只是更改了密码等:

bcp Temp.dbo.Fund in D:\some_ftp_files\Unzipped\filename_58.bcp
-eD:\Error.txt -w -t"|^|" -r"|!|" -Usomename -Psomepass

有人知道我做错了什么吗?

【问题讨论】:

  • 为自己的答案道歉。如果其他人想引用我的答案,我会接受他们的答案,所以我没有得到分数,但这是一个有趣的练习,所以我希望它出现在网站上。

标签: sql-server bcp


【解决方案1】:

我正打算关闭它,但 somoene 可能会发现它很有用,因为我自己错过了显而易见的。

-r"|!|"实际上被设置为行分隔符。不幸的是,文件生成器最后还保留了 \n 的存在。

这更加令人困惑,因为即使您没有指定额外的\n,SQL Server 批量导入也能解决这个问题。 BCP 和其他批量插入方法要求您实际说出:-r"|!|\n"。因此,如果您像我一样注意到差异,您会认为 BCP 调用中存在语法错误或解析不正确。

【讨论】: