ORA-12545: 连接失败,因为目标主机或对象不存在

Posted

技术标签:

【中文标题】ORA-12545: 连接失败,因为目标主机或对象不存在【英文标题】:ORA-12545: Connect failed because target host or object does not exist 【发布时间】:2011-01-26 02:35:32 【问题描述】:

以前有人遇到过这个错误吗?我试着参考这个链接:http://www.ardentperf.com/2007/04/02/local_listener-and-ora-12545/

但这并不能真正解决我们的问题。我们的场景是我们能够连接到数据库,但是当我们尝试从视图中选择数据时会遇到此错误。

我已启用客户端 sqlnet 跟踪,但我无法解释问题的确切原因。

有什么想法吗?

谢谢

【问题讨论】:

视图不涉及数据库链接吗?您可以从常规表中进行选择吗?来自dual? 看起来是 TNSNAMES.ora 的问题:google.ca/… 发布视图定义(以及它使用的任何同义词或其他视图) 您必须分享更多详细信息,在此链接中,问题与 *** 连接有关。 【参考方案1】:

对我来说,问题是在 TNSNAMES.ora 中没有按名称检测到主机,而是使用 IP 地址解决了它(我认为这是由于域控制器问题):

XYZD =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 123.45.67.89)(PORT = 1521))
    (CONNECT_DATA = (SERVICE_NAME = XYZD))
  )

执行命令:“ping HOST”以查找服务器 IP 地址。

PING 主机 TELNET 主机端口 TNSPING TNS_ALIAS

编辑:

刚刚又遇到了这个问题,这次是防火墙通过端口阻止了 TCP。

【讨论】:

默认端口是1521,不是1522【参考方案2】:

这个问题可能是多方面的:

1.您的 TNSNAMES.ora 不是最新的

修复:找到您的 Oracle 主页 查找目录:/network/ADMIN/

如果您在本地计算机上遇到此问题,TNSNAMES.ora 应该在那里

2。创建 TNS_ADMIN 环境变量

就我而言:

变量名称:TNS_ADMIN

值:C:\Programs\Ora10g\network\ADMIN

出于测试目的,请尝试使用 sqlplus 连接到 Oracle 数据库(您可能已经在尝试此操作)。

【讨论】:

【参考方案3】:

我也遇到了这个问题,由于我没有使用 tnsnames.ora 文件,当我踩到这个link时,我几乎放弃了希望。 所以,现在我的代码看起来像这样:

import cx_Oracle 
connection_string = '''username/password@(DESCRIPTION=
                                            (ADDRESS_LIST=
                                                (ADDRESS=
                                                    (PROTOCOL=TCP)
                                                    (HOST=<host_name>)
                                                    (PORT=<port_numer>)
                                                )
                                            )
                                            (CONNECT_DATA=
                                                (SID=<your_SID>)
                                            )
                                        )'''
db = cx_Oracle.connect(connection_String)

现在您可以创建游标并编写查询。 注意:这不是推荐的做法,但我只是用于测试。

【讨论】:

以上是关于ORA-12545: 连接失败,因为目标主机或对象不存在的主要内容,如果未能解决你的问题,请参考以下文章

错误 12545:连接失败,因为尝试连接 sqlplus 时目标主机或对象不存在

转ora-12545:因目标主机或对象不存在,连接失败的解决办法 .

ORA-12545:因目标主机或对象不存在,连接失败!

oracle ORA-12545:因目标主机或对象不存在

使用带有 node-oracledb 的 SID 连接到 Oracle DB 失败

oracle net manager 配置中的连接测试