我正在使用SSIS导入CSV。该软件包已经工作了几年,现在可以将10K行导入SQL Server表。源文件的提供程序已切换到Unicode 65001系统。我没有把这转换成我的SQL Server 2008数据库可以使用的东西。我尝试过的事情包括:添加转换步骤转换为[DT_STR] 1252 ANSI,将数据库中的所有列从VARCHAR更改为NVARCHAR,创建NVARCHAR的全新表,复制平面文件并更改行结尾,将文件传输到舞台表。在所有情况下,我得到相同的错误“无法在65001和1252之间转换。我已经从Oracle数据库做了类似的事情,转换步骤已经工作。注意,文件中没有unicode字符,它是由Oracle系统生成的
答案 0 :(得分:1)
我在这里找到了解决方案: http://slavasql.blogspot.com/2015/08/ssis-conversion-from-unicode-to-non.html
基本上,您添加了一个可视化基本脚本组件,将Unicode列设置为1252的新输出列。就是这样。
Public Overrides Sub Input0_ProcessInputRow(ByVal Row As Input0Buffer)
Row.NonUnicodeAMTS = Row.AMTS
End Sub