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

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

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

Oracle 的 OleDB 数据提供程序现在可在 SQL Server 中使用,但目前似乎无法使用,我是否应该在此 ODAC 上安装 64 位 oracle 11gR2 客户端?

以下是我刚刚创建的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 中获取。

任何形式的帮助将不胜感激。

谢谢

答案1

首先在 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目录

相关内容