关于:无法创建链接服务器 "ORCL" 的 OLE DB 访问接口 "OraOLEDB.Oracle" 的实例 (错误:7302)

本人接触和使用Oracle数据库才有一个季度的时间,问题比较白,大神请无视本文。

环境:

1、数据服务器,windows2008R2,Oracle11g

2、报表服务器,windows2008R2,SQLServer2008R2,Oracle客户端32位,PL\SQL32位(连接数据服务器的Oracle数据库没问题)

任务:

自己的报表平台使用sqlserver数据库(没有Oracle版的,没有为什么),要在SQLServer端通过链接服务器去连接数据库服务器的Oracle数据库读取数据。

遇到的难题:

建立链接服务器,遇到提示:无法创建链接服务器 "ORCL" 的 OLE DB 访问接口 "OraOLEDB.Oracle" 的实例 (错误:7302),搜索了N多解决方法,都无法解决这个问题。

后来搜到了:http://www.cnblogs.com/yuanxiaoping_21cn_com/archive/2013/11/20/3433020.html

这篇博客,发现该博主解决的是【Microsoft OLE DB Provider for ODBC Drivers】这个接口,而我要的是使用【OraOLEDB.Oracle】接口,但是博主的解决思路给了我启发,即同时安装oracle客户端32位和64位,使用同样的【tnsnames.ora】文件。

以往的经验和教训:

在32位windows系统的服务器上,安装oracle客户端32位时,建立链接服务器很顺利;

在64位windows系统的服务器上,安装oracle客户端32位时,建立链接服务器则失败,失败的提示同本文题目,也尝试同时安装32位和64位Oracle客户端(但没有使用和32位客户端一样的连接文件),但也没取得成功;

在64位windows系统的服务器上安装Oracle11g数据库(64位)时,建立与数据库服务器的链接服务器就比较顺利。

综上推断:

报表服务器的windows2008R2系统和SQLServer2008R2数据库都是64位的,它需要64位Oracle客户端,并且需要和32位Oracle客户端一样的连接文件【tnsnames.ora】。

解决:

下载64位Oracle客户端,地址:http://download.oracle.com/otn/nt/oracle11g/112010/win64_11gR2_clsent.zip

下载时,直接把上述地址粘贴到迅雷里面就可以下载,直接点开链接地址则需要注册或者登录该网站。

安装时,为了区别,将安装目录改为【D:\app\Administrator\product\11.2.0\client_64】;

连接文件【tnsnames.ora】里面的名称,也加了区别,比方说32位下的连接名字叫orcl,那么64位里面叫orcl64。

测试:

建立链接服务器(数据库源为orcl64)成功,原来32位的PL\SQL仍然以orcl连接。

总结:

32位的PL\SQL连接数据库服务器,使用32位驱动;

64位SQLServer连接数据库服务器,使用64位驱动;

两个oracle客户端都要安装,各自提供驱动,车走车路,马走马路,彼此井水不犯河水。

上一篇:clone远程代码及push


下一篇:[NOI2011]