關於:無法創建鏈接服務器 "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刪除。



猜您在找 無法創建鏈接服務器 "(null)" 的 OLE DB 訪問接口 "Microsoft.Ace.OLEDB.12.0" 的實例。 消息 7356,級別 16,狀態 1,第 1 行 鏈接服務器 "downloadschoolcardinfo" 的 OLE DB 訪問接口 "OraOLEDB.Oracle" 為列提供的元數據不一致。對象 ""VIEW_ZJK"."V_QDXQHIS_RYXX"" 的列 "XZZ" (編譯時序號為 9)在編譯時有 1 的 "LENGTH",但在運行時有 2。 無法啟動鏈接服務器"XXX DB Link"的 OLE DB 訪問接口 "SQLNCLI11" 的嵌套事務。由於 XACT_ABORT 選項已設置為 OFF,因此必須使用嵌套事務。鏈接服務器"XXX DB Link"的 OLE DB 訪問接口 "SQLNCLI11" 返回了消息"無法在此會話中啟動更多的事務"。 鏈接服務器"(null)"的 OLE DB 訪問接口 "Microsoft.Jet.OLEDB.4.0" 返回了消息 "未指定的錯誤"。[手稿] Cannot create an instance of OLE DB provider "OraOLEDB.Oracle" for linked server "xxxxxxx". 無法獲取鏈接服務器 "XXX" 的 OLE DB 訪問接口 "SQLNCLI10" 的架構行集 "DBSCHEMA_TABLES_INFO"。該訪問接口支持該接口,但使用該接口時返回了失敗代碼。 SQL服務器出現OLE DB 訪問接口 "SQLNCLI11" 無法啟動分布式事務 Cannot obtain the required interface ("IID_IDBCreateCommand") from OLE DB provider "OraOLEDB.Oracle" for linked server xxxx sqlserver跨數據庫使用事務更新報錯 鏈接服務器的 OLE DB 訪問接口 “SQLNCLI11“ 鏈接服務器讀取Mysql---出現消息 7347,級別 16,狀態 1,第 13 行 鏈接服務器 '****' 的 OLE DB 訪問接口 'MSDASQL' 返回的數據與列 '[MSDASQL].字段名稱' 所需的數據長度不匹配。所需的(最大)數據長度為 240,但返回的數據長度為 478。
 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM