【问题标题】:SSRS: Oracle TNS:listener error?SSRS:Oracle TNS:监听器错误?
【发布时间】:2010-02-16 17:08:57
【问题描述】:

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

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

有人知道为什么吗?

【问题讨论】:

    标签: oracle reporting-services ora-12514


    【解决方案1】:

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

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

    【讨论】:

    • 我应该在新的监听器中添加什么?
    • 连接oracle数据库有两种方式,一种是直接连接:即主机+密码+端口+模式。另一种方法是通过 TNS 名称。您将主机+密码+端口存储在 tns 文件中。设置 TNS_ADMIN=/path/to/folder/where/tnsfile/ 并引用所述 TNS 文件。
    • 如果您打开 tnsnames.ora 文件,您应该会看到一个示例,您可以从另一个数据库复制配置文件并将信息更改为您的服务器和数据库。
    • @Achille:Oracle 中的连接要么通过 SQL*Net 侦听器连接(如您所说的“TNS 名称”,尽管并非绝对需要 TNSnames 条目)或进程间通信 (IPC),(直接联系)。 IPC 连接不需要端口规范,因为它不使用 TCP/IP。 IPC 连接确实要求客户端与数据库位于同一系统上。
    【解决方案2】:

    如果您选择采用这种方式,一般 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)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-06-03
      • 1970-01-01
      • 2017-06-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-23
      相关资源
      最近更新 更多