我正在尝试将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用户@甲骨文