關於:無法創建鏈接服務器 "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客戶端都要安裝,各自提供驅動,車走車路,馬走馬路,彼此井水不犯河水。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM