具有扩展 ASCII 字符 ñ 的导入字段中的 BCP 问题

本文关键字:导入 字段 BCP 问题 扩展 ASCII 字符 | 更新日期: 2023-09-27 17:55:13

我正在尝试为文件中的一组记录执行BCP。 它在具有扩展 ASCII 字符的记录中失败。

我尝试了命令

bcp db1.table1 in  "C:'file.DAT"  -T -C ACP -SMyServer'SQL2012Instance -r"'n" -t"," -b100000 -c 

我使用代码页选项作为 -C RAW ,但它没有成功。

对于该记录,我收到以下错误。 您能否帮助在这种情况下指定格式。

SQLState = 22001, NativeError = 0 Error = [Microsoft][SQL Server Native Client 10.0]String data, right truncation

您能否帮助在这种情况下指定格式。

具有扩展 ASCII 字符 ñ 的导入字段中的 BCP 问题

问题已确定,我想更新以下事实:BCP 的输入文件采用 UTF-8 格式,这不是 BCP 实用程序支持的编码。

因此,我用 Latin1Encoding(在 C# 中)而不是 UTF-8 准备了该文件。它仍然可以在 1 字节中保存扩展的 ascii 字符。然后,我更改了 BCP 命令以接受代码页 1252,该代码页用于 BCP 支持的拉丁语 1 编码,该编码有效。 请参阅下面更改后的命令。

bcp db1.table1 in  "C:'file.DAT"  -T -C 1252 -SMyServer'SQL2012Instance -r"'n" -t"," -b100000 -c 

还有一个替代解决方案,即以 Unicode 字符集准备文件,并且可以在命令中使用 -w 选项而不是 -c。