分类: 数据库开发技术
2011-06-20 17:06:30
From:http://blog.163.com/loose_went/blog/static/49895180200991411845568/
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…
在弹出的窗口中选择Component Properties,然后将在这里将属性AlwaysUseDefaultCodePage设置为true,DefaultCodePage也应为936。
这样设置了之后,这个问题就解决了。