SSIS 中处理中文乱码

 
 
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就可以了解决乱码了。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值