【问题标题】:BCP issue in importing field having extended ASCII Character ñ导入具有扩展 ASCII 字符的字段时的 BCP 问题
【发布时间】:2016-11-06 17:31:47
【问题描述】:

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

请您帮忙看看在这种情况下要指定的格式。

【问题讨论】:

  • 这个问题我们用驱动旧的ODBC驱动来面对..更新odbc驱动或使用ssis ...

标签: c# sql-server ssis bcp


【解决方案1】:

问题已确定,我想更新一个事实,即 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 选项。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-14
    • 2013-03-19
    • 1970-01-01
    相关资源
    最近更新 更多