【问题标题】:SQL Server Bulk Import With Format File of UTF-8 Data使用 UTF-8 数据格式文件的 SQL Server 批量导入
【发布时间】:2012-02-24 21:50:56
【问题描述】:

我一直在参考以下页面:

http://msdn.microsoft.com/en-us/library/ms178129.aspx

我只是想从包含 Unicode 字符的文件中批量导入一些数据。我曾尝试用 UC-2、UTF-8 等对实际数据文件进行编码,但没有任何效果。我还修改了格式文件以使用SQLNCHAR,但它仍然不起作用并给出错误:

第 1 行第 1 列的批量加载数据转换错误(截断)

我认为这与上面链接中的这句话有关:

要使格式文件与 Unicode 字符数据文件一起工作,所有 输入字段必须是 Unicode 文本字符串(即,无论是固定大小 或以字符结尾的 Unicode 字符串)。

这究竟是什么意思?我认为这意味着每个字符串都需要是固定的 2 个字节,UCS-2 中的文件编码应该处理???

【问题讨论】:

    标签: sql-server unicode import bulk


    【解决方案1】:

    这篇博文真的很有帮助,解决了我的问题:

    http://blogs.msdn.com/b/joaol/archive/2008/11/27/bulk-insert-using-unicode-data-files.aspx

    还有一点需要注意 - 一个 Java 类正在生成数据文件。为了使上述方案生效,需要将数据文件编码为UTF-16LE,可以在OutputStreamWriter的构造函数中设置(例如)。

    【讨论】:

    • 该博客文章为我澄清的必要的具体更改是(在您的格式文件中):使用SQLNCHAR而不是SQLCHAR;使用 '\t\0' 作为您的字段终止符(如果您使用的是制表符);使用 '\r\0\n\0' 作为行终止符(如果您使用的是 Windows 换行符)。
    【解决方案2】:

    在 SQL Server 2012 中,我导入了一个使用 Notepad++ 保存的 .csv 文件,该文件在 UCS-2 中使用特殊的西班牙语字符进行编码

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-06
      • 1970-01-01
      • 2015-08-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多