日期:2014-05-16  浏览次数:20560 次

SSIS 中处理中文乱码
以下内容转自:http://www.blogjava.net/rocky/archive/2005/11/10/19072.html
OLE DB Source是sql 2000 中文版本,数据库编码为默认中文
OLE DB Destination是oracle 9i ,操作系统为redhat linux as 4,数据库编码是utf-8,使用yukon自带的oracle ole db的驱动
?
结果导入数据成功,但查询数据发现中文为乱码
?
?
疑问如下:
1、Data Conversion组件做non-unicode-->unicode的转换应该如何做?
??? 我是在做
?? ex:我在SQL server库table中有一个字段为userName,varchar(30);
??? ??? 在oracle中有同样字段为username varchar2(30);
那么我在连接SQL server后发现userName的data type为DT_STR,length为30,code为936
??? 而我的oracle的userName为datatype也为DT_STR,length为30,code为65001
我应该如何做转换呢?
如果我选用data conversion直接转换选取code为65001,那么SSIS报错不能将936直接转换为65001
那么我采取两个data conversion来做转换,首先将其转换为DT_WSTR
然后第二个data conversion再将DT_WSTR转换为DT_STR,然后选取code为65001
成功转换
问题压了好久了,今天无意中才发现我的data destination 的default codepage应该选择为936(中文),然后选择AlwaysUseDefaultCodePage=true;然后将数据类型为DT_WSTR的转换为DT_STR,选择codepage=936就可以了解决乱码了。