我正在尝试使用mac机器上的cx_Oracle包通过python连接到在Windows 10上运行的Oracle实例。 现在连接时抛出以下错误。 ' ORA-21561:OID生成失败\ n'
我的示例代码:
import cx_Oracle
DSN = cx_Oracle.makedsn(host=server, port=port, service_name=database)
# Below is the DNS
# (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.9)(PORT=50244))(CONNECT_DATA=(SERVICE_NAME=devXDB)))
con = cx_Oracle.Connection(user, password, DSN)
但是我可以使用SQL开发人员和PyCharm的数据库浏览器从同一台机器(mac)连接。我搜索过并没有找到任何与远程实例相关的解决方案。建议的解决方案似乎只适用于需要在Windows 10上编辑/更新etc / hosts或相关文件的本地实例。
提前致谢。
答案 0 :(得分:2)
这确实是/ etc / hosts文件问题的问题。 有一点需要注意,即使oracle实例在远程机器上运行,客户端机器(从那里连接到oracle实例)/ etc / hosts文件也应该有这样的条目。
##
# Host Database
#
# localhost is used to configure the loopback interface
# when the system is booting. Do not change this entry.
##
127.0.0.1 localhost localhost.localdomain Amits-iMac.local
替换' Amits-iMac.local'到您客户的主机名。