ORA-12504:TNS:侦听器未在CONNECT_DATA中获得SERVICE_NAME

Ris*_*shi 8 odp.net visual-studio-2010 oracle11g

我正在尝试使用Visual Studio 2010中的服务器资源管理器连接我的本地Oracle 11g数据库.我尝试按照说明设置所有内容,但我仍然收到ORA-12504错误.

这是错误:

在此输入图像描述

这是我的tnsnames.ora内容:

# tnsnames.ora Network Configuration File: C:\app\rsahi\product\11.2.0\dbhome_1\network\admin\tnsnames.ora
# Generated by Oracle configuration tools.


VENUS =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = SPRPRG020)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = VENUS)
    )
  )

LISTENER_VENUS =
  (ADDRESS = (PROTOCOL = TCP)(HOST = SPRPRG020)(PORT = 1521))
Run Code Online (Sandbox Code Playgroud)

listener.ora文件内容,

# listener.ora Network Configuration File: C:\app\rsahi\product\11.2.0\dbhome_1\network\admin\listener.ora
# Generated by Oracle configuration tools.

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
      (ADDRESS = (PROTOCOL = TCP)(HOST = SPRPRG020)(PORT = 1521))
    )
  )

ADR_BASE_LISTENER = C:\app\rsahi
Run Code Online (Sandbox Code Playgroud)

小智 18

在Visual Studio的"服务器资源管理器数据连接"面板中尝试此操作:

Data source name: SPRPRG020/VENUS

即数据源名称格式为SERVER_NAME_OR_IP/DATABASE_NAME


Man*_*Gee 0

当我尝试使用 Oracle 11g 创建 LinkedServer 时,我遇到了同样的问题。我的 Oracle 实例名称是:PC-2.my.xgen,我的侦听器名称是“ NB ”。第一条语句的最后一个参数实际上是 Oracle 服务器实例和侦听器名称的串联。

所以我在SQL Server中写下了以下语句。

--add a linked server into SQL server
--last parameter contains OracleInstance / Listener Name of desired database
EXEC sp_addlinkedserver   'OracleLinkedServer4', 'Oracle',   'MSDAORA', 'PC-2.my.xgen/nb'

--add login information into linked server
EXEC sp_addlinkedsrvlogin 'OracleLinkedServer4', false,  Null, 'system',  '123456'
Run Code Online (Sandbox Code Playgroud)

在 Oracle 数据库“NB”中,我有一个名为:CRD_CIL_NOTIFICATION_TYPE 的表。所以我写下了下面的语句来获取记录。

select * from OracleLinkedServer4..SYSTEM.CRD_CIL_NOTIFICATION_TYPE
Run Code Online (Sandbox Code Playgroud)