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

BCP issue in importing field having extended ASCII Character ñ

我正在尝试为文件中的一组记录执行 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

能否请您帮忙指定这种情况下的格式。

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

因此,我已经用 Latin1Encoding(在 C# 中)而不是 UTF-8 准备了那个文件。它仍然可以在 1 个字节中保存扩展的 ascii 字符。 然后我更改了 BCP 命令以接受代码页 1252,这是 BCP 支持的 latin 1 编码,它起作用了。请参阅下面更改后的命令。

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

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