【转载】SSIS 64位环境访问Oracle11g

SSIS 为了要能够在64位的机器上面让SSIS存取Oracle,当然需要安装64位的Oracle Provider,但是遇到最大的问题在于SSIS在执行的时候分成两种组件,分别是DTExec.exe(32位版)以及DTExec.exe(64位版),分别存在于Program Files(x86)以及Program Files目录之下。当SSIS在执行时候或者是在利用导入导出数据(64位版)时都不会有问题
image
但是最大的问题在于SSIS在设计阶段时利用的BIDS只有32位版,因此在开发时若是要测试连接,会找不到对应的32位提供程序,而发生初始化提供程序的问题(所以大家这时会质疑我明明已经装了,为什么他说找不到)
因此若是要解决方式就必须同时安装32位以及64位的Oracle Client。
以下说明,在64位Windows环境下安装Oracle Client & OLEDB组件的步骤(我的操作系统是Windows Server 2008 R2):
1、    需要先准备32位以及64位两种版本的Oracle Client,建议使用11.1.0.7.0版,因为如果是使用10.2.0.1版本需要再安装两个Oracle补丁
              (#4547817 & #5383042) ,如果没有安装以上补丁会遇到ORA-12154: TNS:无法解析指定的连接ID的问题。
2、    如果系统上有旧的Oracle clients,请复制备份tnsnames.ora以及sqlnet.ora档案。(位于%ORACLE_HOME%/network/ADMIN/目录下)
3、    安装以及删除旧的Oracle client以及安装目录(需要重启计算机,才能够删除目录)。
4、    在64位SQL Server的机器上面执行Oracle 11g Client的setup.exe, 必须先安装32 位版本
5、    选择[管理员]模式全部安装(专业级人士可以自行选择模式)。
6、选择相应的语言下一步,然后根据需要修改路径
在此我将32位的路径文件夹改为client_1,
将64位的路径文件夹改为client_2.
7、安装完后重新将TNSNAMES.ORA替换新安装的client的%ORACLE_HOME%/network/admin文件夹中,32位和64位都要替换,否则在使用PLSQL或者BIDS创建Oracle数据源时会提示TNS错误。
P.S.如果在安装完2个client(32位和64位)之后使用自带的Net Manager配置服务命名时其配置的的都是64位的,即配置的ORA都存在64位的client目录的admin文件夹中,所以始终无法使用BIDS连接Oracle(除非使用IP\服务名方式)
8、重复以上步骤再安装一次64位Client
P.S.安装时会出现[OracleMTSRecoveryService 已存在]或者一些PATH路径值过多等的错误信息,请点选[忽略]继续安装即可,当然也可以找寻相应的解决方案解决更好,只是这些问题都不是非常严重的。
 
9、修改以下的注册表设定,然后重启电脑
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC\MTxOCI    
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\MSDTC\MTxOCI
将值改为
OracleOciLib = oci.dll
OracleSqlLib = orasql11.dll (旧的值是: SQLLib80 .dll)
OracleXaLib = oraclient11.dll (旧的值是: xa80.dll)
此时就可以正常地在64位环境中的BIDS读取Oracle数据了。各位可以利用32位版以及64位版的导入导出数据进行测试。
但是要记得的是,使用BIDS时,它是根据32位的数据提供程序,因此在开发以及排错时还是利用32位的Oracle OLEDB来读取数据。但是当SSIS封装布署到64位SQL Server执行时,他就会改使用64位的Oracle OLEDB

转载于:https://www.cnblogs.com/xiongnanbin/archive/2013/05/22/13b52af307bdffa3bccff7a71d32c660.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值