我想使用批量插入命令将Textfiles导入SQL Server 2014。我使用格式文件跳过不需要的列。 所以这个工作正常,除了UTF8文件。某些特殊字符(ä,ö,ü,...)未正确导入。
this文章中的解决方案有效,但不使用格式文件。我还尝试将Formatfile中的数据类型更改为“SQLNCHAR”,这会导致此错误:
Msg 4863, Level 16, State 1, Line 3
Bulk load data conversion error (truncation) for row 11, column 1 (col1).
Msg 7399, Level 16, State 1, Line 3
The OLE DB provider "BULK" for linked server "(null)" reported an error. The
provider did not give any information about the error.
Msg 7330, Level 16, State 2, Line 3
Cannot fetch a row from OLE DB provider "BULK" for linked server "(null)".
那么UTF8-Codepage如何与格式文件结合使用?
感谢您的帮助!
答案 0 :(得分:0)
我想通了......
由于UTF8编码,在批量插入语句中定义了排序/编码:
WITH (CODEPAGE = '65001', DATAFILETYPE = 'Char', ...)
在这种情况下,格式文件中的排序规则必须为空,并且类型必须为“SQLCHAR”。例如,我的格式文件中的第一行是:
1 SQLNCHAR 0 50 | 1 column1 ""
希望它可以帮助其他人避免数小时的搜索...