有没有人遇到过这个错误?我试图参考这个链接:http ://www.ardentperf.com/2007/04/02/local_listener-and-ora-12545/
但这并不能真正解决我们的问题。我们的场景是我们能够连接到数据库,但是当我们尝试从视图中选择数据时会遇到这个错误。
我已启用客户端 sqlnet 跟踪,但我无法解释问题的确切原因。
有什么想法吗?
谢谢
有没有人遇到过这个错误?我试图参考这个链接:http ://www.ardentperf.com/2007/04/02/local_listener-and-ora-12545/
但这并不能真正解决我们的问题。我们的场景是我们能够连接到数据库,但是当我们尝试从视图中选择数据时会遇到这个错误。
我已启用客户端 sqlnet 跟踪,但我无法解释问题的确切原因。
有什么想法吗?
谢谢
对我来说,问题是在 TNSNAMES.ora 中没有按名称检测到主机,而是使用 IP 地址解决了它(我认为这是由于域控制器问题):
XYZD =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 123.45.67.89)(PORT = 1521))
(CONNECT_DATA = (SERVICE_NAME = XYZD))
)
执行命令:“ping HOST”以查找服务器 IP 地址。
编辑:
刚刚又遇到了这个,这次是防火墙通过端口阻止了 TCP。
这个问题可能是多方面的:
1. 您的 TNSNAMES.ora 不是最新的
修复:查找您的 Oracle Home 查找目录:/network/ADMIN/
如果您在本地计算机上遇到此问题,TNSNAMES.ora 应该在那里
2. 创建 TNS_ADMIN 环境变量
就我而言:
变量名称:TNS_ADMIN
值:C:\Programs\Ora10g\network\ADMIN
出于测试目的,请尝试使用 sqlplus 连接到 Oracle DB(您可能已经在尝试此操作)。
我也有这个问题,由于我没有使用 tnsnames.ora 文件,当我踩到这个链接时,我几乎放弃了希望。
所以,现在我的代码如下所示:
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)
现在您可以创建一个游标并编写您的查询。
注意:这不是推荐的做法,但我只是将其用于测试。