SSIS ADO源与OLEDB目标的映射问题

0
在64位的服务器上用32位的ORACLE驱动建了一个ODBC, 然后用SSIS引用此ODBC建ADONET源(SQL COMMAND), 由于自动识别DATA TYPE为UNICODE, 于是中间加DATA CONVERSION将CODE转成(DT_STR, 40, 1252), 然后导入OLEDB的目标MSSQL. 于是出现了一个巨诡异的问题, 数据的结果随机出现, 每跑一次结果都不一样. 把ADONET源改成OLEDB源,就没什么问题 (至少目前结果是正确的).这个问题折磨了我1整天了, 开始一直以为是ODBC设置或者是DATA TYPE的问题, 后来想着把源和目标都用同样的DRIVER才解决. 这个是嘛情况? 诡异啊.
比如说ODBC SQL出来源表值为
PRDCT_CD TM_CD TM_NM
0001    017    OTHER BRAND
0002    017    OTHER BRAND

写到OLEDB的MSSQL会变成
PRDCT_CD TM_CD TM_NM
0001    017    OTHER BRAN
0002    017    OTHER BRAND

有时又会变成
PRDCT_CD TM_CD TM_NM
0001    01      OTHER BRAND
0002    017    OTHER BRAND
已邀请:
0

天桥下的郑成功 - Hadoop大数据开发工程师、数仓架构师、熟悉数据仓库设计、Hadoop、Spark、HBase、Hive、SSIS等开发 2015-11-12 回答

只要不仅仅是微软数据库的数据流入流出,都不要用 ADO数据源, 首选OLEDB

要回复问题请先登录注册