无法使用ODAC从SQL Server访问Oracle DB?

我已经下载并安装ODAC,用于使用http://download.oracle.com/otn/other/ole-oo4o/ODAC112021Xcopy_x64.zip将Oracle DB连接到我的SQL Server 2008中

用于Oracle的OleDB数据提供程序现在可以在SQL Server中使用,但似乎现在还不能使用,那么我应该在这个ODAC的顶部安装Oracle 11gR2客户端吗?

以下是右键单击与我刚刚创build的用于testing服务器连接的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中进入。

任何forms的帮助将不胜感激。

谢谢

首先在SQL Server中安装ODAC 11g 64位,然后编辑TNS名称即可解决问题。

ODAC112021Xcopy_x64.zip

并设置以下环境variables:

 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目录