MS SQL 2008 – 安装Oracle链接服务器

我正在尝试将MS SQL 2008 R2上的链接服务器设置为Oracle 11g服务器。 我已经安装了Oracle客户端,并从服务器复制了sqlnet.ora,tnsnames.ora&listener.ora,并使用以下值:

SQLNET.ORA

SQLNET.AUTHENTICATION_SERVICES =(NTS)

NAMES.DIRECTORY_PATH =(TNSNAMES,EZCONNECT)

tnsnames.ora中

ORACLE =

(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = slug.blue.local)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = oracle.blue.local) ) ) 

listener.ora中

LISTENER =

  (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)) (ADDRESS = (PROTOCOL = TCP)(HOST = slug.blue.local)(PORT = 1521)) ) ) 

但是在创build一个新的链接服务器时,我一直收到这个错误

链接的服务器已经创build,但连接testing失败。 你想保持链接的服务器?

附加信息:

  • 执行Transact-SQL语句或批处理时发生exception。 (Microsoft.SqlServer.ConnectionInfo)

  • 无法初始化链接服务器“ORACLE”的OLE DB提供程序“OraOLEDB.Oracle”的数据源对象。

    OLE DB提供程序“OraOLEDB.Oracle”为链接服务器“ORACLE”返回的消息

    “ORA-12504:TNS:listener没有被赋予CONNECT_DATA中的SERVICE_NAME。” (Microsoft SQL Server,错误:7303)

任何人都可以发现我的configuration有问题吗?

有没有其他的方法来指定SERVICE_NAME或一切来自oracle客户端的.ora文件?

我发现TNSNAMES.ora文件在语法上没有问题。 我能够复制/粘贴到我的,并更改主机名和服务名称,并成功连接。

尝试连接SQL * Plus。 这是否给你同样的错误? 你可以使用EZCONNECT语法来连接:sqlplus user@'slug.blue.local:1521 / oracle.blue.local'?

您的本地系统上是否安装了多个Oracle客户端?

另外,尝试一个简单的TNSNAMES.ORA文件,只是你张贴的条目。

另外,你是否尝试使用tnsnames.ora文件连接SQL * Plus? 即,sqlplus用户@甲骨文