2010-02-16 123 views
0

我有一个使用业务对象提供程序的SSRS报告。该DLL与Oracle服务器有连接。每当我运行报告我不断收到此错误信息:SSRS:Oracle TNS:侦听器错误?

“Oracle.DataAccess.Client.OracleException ORA-12514:TNS:监听器目前不知道服务的连接描述符请求”

任何人都知道这是为什么?

回答

1

这听起来像你安装Oracle客户端,但还没有设置您的TNS监听器。

应该有一个名为“tnsnames.ora中”文件和文件中,你需要添加一个新的监听器。如果是Windows安装,则可能还有网络配置GUI。

+0

我应该在新的监听器中添加什么? – sanjeev40084

+0

连接到oracle数据库可以通过两种方式完成,一种是直接连接:即host + password + port + schema。另一种方法是通过TNS名称。您将主机+密码+端口存储在tns文件中。设置TNS_ADMIN =/path/to/folder /其中/ tnsfile /并引用所述TNS文件。 – Achille

+0

如果您打开tnsnames.ora文件,您应该看到一个示例,您可以从另一个数据库复制配置文件并将信息更改为您的服务器和数据库。 – Ben

0

一般tnsnames.ora中的条目是这样的,如果你选择走那条路:

DBAlias = 
    (DESCRIPTION = 
    (ADDRESS = (PROTOCOL = TCP)(HOST = xxx.xxx.xxx.xxx)(PORT = 1521)) 
    (CONNECT_DATA = (SERVICE_NAME = YourDBServiceName)) 
) 

tnsnames.ora文件通常驻留在ORACLE_HOME/network/admin目录。从技术上讲,您不是“创建监听者”,而是为Oracle客户端网络连接字符串定义一个别名,指的是某个侦听器的某个地方的

或者,您可以指定一个字符串EZCONNECT,如果你不想/不能惹的tnsnames.ora条目:

"Data Source=//yourserver:1521/yourDB;User ID=theUser;Password=thePW" 

您需要在sqlnet.ora文件的条目效果如下:

NAMES.DIRECTORY_PATH = (TNSNAMES, EZCONNECT)