2011-01-28 75 views
8

我试图在Visual Studio 2010中使用服务器资源管理器连接我的本地Oracle 11g数据库。我尝试按照指令设置所有内容,但我仍然得到一个ORA-12504错误。ORA-12504:TNS:listener没有被赋予CONNECT_DATA中的SERVICE_NAME

以下是错误:

enter image description here

这里是我的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)) 

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 

回答

-1

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

所以我写下了SQL服务器中的以下语句。

--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' 

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

select * from OracleLinkedServer4..SYSTEM.CRD_CIL_NOTIFICATION_TYPE 
1

而不必很多知识在将ODP.NET与Oracle DB连接时,我建议您开始使用g SERVICE_NAME(例如:VENUS)在你的连接参数中。

甲骨文指出:

从11g开始,使用在/ etc/hosts文件中提供的主机名,作为别名/服务名称的功能已经改变。因此,用户必须在连接或配置目标侦听器时使用默认服务名称来提供服务名称。绕过SERVICE_NAME客户端要求

一种方法是告诉它在tnsnames.ora

DEFAULT_SERVICE_LISTENER = VENUS 

这样做强制监听器总是在相同的服务送你,但我不建议你这样做是相当有限的。

15

试试这个,在Visual Studio的服务器资源管理器数据连接面板:

Data source name: SPRPRG020/VENUS

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

+1

使用SSIS,这个提示确实描述格式在“SQL Server导入和导出向导”的“选择数据源”步骤中的“数据源”字段中需要。 – 2012-12-19 20:33:46

相关问题