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

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

环境:sql

一、数据服务器,windows2008R2,Oracle11g数据库

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

任务:服务器

本身的报表平台使用sqlserver数据库(没有Oracle版的,没有为何),要在SQLServer端经过连接服务器去链接数据库服务器的Oracle数据库读取数据。oracle

遇到的难题:app

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

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

这篇博客,发现该博主解决的是【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客户端都要安装,各自提供驱动,车走车路,马走马路,彼此井水不犯河水。

相关文章
相关标签/搜索