0

我有一个使用业务对象提供程序的 SSRS 报告。该 dll 与 Oracle 服务器有连接。每当我运行报告时,我都会不断收到此错误消息:

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

有谁知道为什么?

4

2 回答 2

1

听起来您安装了 oracle 客户端但尚未设置 TNS 侦听器。

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

于 2010-02-16T17:16:31.483 回答
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 客户端网络连接字符串定义别名,它将在某处引用侦听器。

或者,如果您不想/不能弄乱 tnsnames.ora 条目,您可以指定一个 EZConnect 字符串:

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

您将需要 sqlnet.ora 文件中的一个条目,其效果是:

NAMES.DIRECTORY_PATH = (TNSNAMES, EZCONNECT)
于 2010-02-16T19:03:20.317 回答