Windows-Server-2008

無法使用 ODAC 從 SQL Server 訪問 Oracle DB?

  • April 16, 2011

我已經使用http://download.oracle.com/otn/other/ole-oo4o/ODAC112021Xcopy_x64.zip下載並安裝了用於將 oracle DB 連接到我的 SQL Server 2008 的 ODAC

Oracle 的 OleDB 數據提供程序現已在 SQL Server 中可用,但目前似乎無法使用,我是否應該在此 ODAC 之上安裝 oracle 11gR2 客戶端 64 位?

下面是我剛剛創建的用於測試伺服器連接的oracle伺服器的連接右擊的結果。

TITLE: Microsoft SQL Server Management Studio
------------------------------
The test connection to the linked server failed.
------------------------------
ADDITIONAL INFORMATION:
An exception occurred while executing a Transact-SQL statement or batch. (Microsoft.SqlServer.ConnectionInfo)

------------------------------

Cannot initialize the data source object of OLE DB provider "OraOLEDB.Oracle" for linked server "DW-DB_PROD".
OLE DB provider "OraOLEDB.Oracle" for linked server "DW-DB_PROD" returned message "ORA-12541: TNS:no listener". (Microsoft SQL Server, Error: 7303)

For help, click: http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&ProdVer=10.00.4000&EvtSrc=MSSQLServer&EvtID=7303&LinkId=20476

------------------------------
BUTTONS:
OK
------------------------------

DW-DB_PROD 是可用的數據庫實例名稱,可通過 TNSPING 命令執行,我可以從 SQLPLUS 中獲取。

任何形式的幫助將不勝感激。

謝謝

首先在 SQL Server 中安裝 ODAC 11g 64 位,然後編輯 TNS 名稱即可解決問題。

ODAC112021Xcopy_x64.zip

並設置以下環境變數:

ORACLE_HOME=C:\Oracle\Client\product\11.2.0\client_1
Path=C:\Oracle\Client\product\11.2.0\client_1\bin\;C:\Oracle;C:\Oracle\bin
TNS_ADMIN=

之後將 TNSNames 放入C:\Oracle\Client\product\11.2.0\client_1\network\admin目錄

引用自:https://serverfault.com/questions/249677