SSIS中代码页(Code Page)问题

时间:2021-12-23 16:36:35

MSDN对于Code Page的解释是:对于字符和 Unicode 数据,代码页是代表特定字母、数字或符号的位模式的定义(例如 0x20 代表空格,0x74 代表字符“t”)。某些数据类型为每个字符使用一个字节;每个字节的位模式可以是 256 种不同位模式之一。

 

在做SSIS项目的Data Coversion时,经常会遇到类似这样的问题:

The column “xxx” cannot be processed because more than one code page (1252 and 936) are specified…

这个问题一般会提示在Destination控件上(如OLE DB Destination),既数据导入的目的地,同时也会提示在Data Flow Task控件上,意思是在转换匹配的时候,字符集定义的代码页多于一个。不过当Destination控件问题解决了,Data Flow Task控件上的问题就会随之解决,因为Destination控件存在于Data Flow Task控件中。

关于这个问题的解决方法,网上一般的说法是将Source控件(如OLE DB Source)的AlwaysUseDefaultCodePage属性设置为true即可。

但我在实验中发现,直接在Visual Studio IDE右面的属性窗口设置是不起作用的,应该右键点击OLE DB Source控件,点击Show Advanced Editor…

SSIS中代码页(Code Page)问题

在弹出的窗口中选择Component Properties,然后将在这里将属性AlwaysUseDefaultCodePage设置为trueDefaultCodePage也应为936

SSIS中代码页(Code Page)问题

这样设置了之后,这个问题就解决了。