问题说明
今天测试odbc源和ado.net源连接SqlServer抽取数据性能时,发现ssis2012 odbc了一个问题。我是Win10 64位系统,潜意识配置odbc源是64位。配置完发现报错了。
odbc的配置与oledb,ado.net配置有点不一样,先上图简单说下odbc的配置。
odbc配置步骤
控制面板——>管理工具
出如下界面,发现没,odbc源有32位和64位的。以为自己本机是64位,就确定的选了64位的配置。ssis2012的odbc只能配32位的,下面再说原因。
这里先选64位来说明问题。出现如图界面:
用户DSN:只对当前用户可见,且只能用于当前机器上。
系统DSN:系统数据源对当前机器上的所有用户可见.
文件DSN:可以由安装了相同驱动程序的用户共享.
说白了就是权限不同,这里选择系统DSN来说明问题。点击添加。
选择SQLServer ,填写名称,数据库服务器,
默认下一步再下一步,选择连接的数据库。一直下一步完成即可。
出现了刚刚设置的数据源“粽子job”
回到SSIS数据流配置odbc连接管理器。如图操作
在系统数据源找不到刚刚配置的 "粽子job"。
总结:原因虽然你安装的是64位的2012ssdt,但是2012里面还是用的2010的32位的shell命令。运行ssdt时可以发现。
但是有一个问题很奇怪,选择用户DSN32位和64位odbc源都可以都出来(本地测试过了)。
总的来说:ssis2012 odbc配置选择用户DSN32或64,系统32DSN ODBC源都可以读出来。