python cx_Oracle连接远程错误

python cx_Oracle连接远程错误,python,oracle,Python,Oracle,我想用python连接到远程oracle数据库,并尝试创建一个数据帧: con = ora.connect('user/pass@remote_ip/XE') query = "select * from my_table" df = pd.read_sql(query, con) 我使用的是macOS high siera,我的主机文件如下所示: ## # Host Database # # localhost is used to configure the loopback inter

我想用python连接到远程oracle数据库,并尝试创建一个数据帧:

con = ora.connect('user/pass@remote_ip/XE')
query = "select * from my_table"

df = pd.read_sql(query, con)
我使用的是macOS high siera,我的主机文件如下所示:

##
# 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 local
127.0.0.1 localhost localhost.localdomain local lynx
255.255.255.255 broadcasthost
::1             localhost
127.0.0.1     activate.adobe.com
127.0.0.1     practivate.adobe.com
127.0.0.1     hlrcv.stage.adobe.com
127.0.0.1     na1r.services.adobe.com
127.0.0.1 quickplayer.tvgo.hu
80.211.194.173 anton
10.2.94.217 lynx
我得到了cx_Oracle.DatabaseError:ORA-21561:OID生成失败错误

如果我在Ubuntu上尝试,它会工作的

我的数据库版本:

Oracle Database 11g Express Edition Release 11.2.0.2.0 - 64bit Production
PL/SQL Release 11.2.0.2.0 - Production
CORE     11.2.0.2.0            Production
TNS for Linux: Version 11.2.0.2.0 - Production
NLSRTL Version 11.2.0.2.0 - Production

我应该尝试什么?

评论摘要:

运行hostname以获取操作系统认为您的名称

在本例中,主机名返回QGMAC.local

将此行添加到主机文件:

127.0.0.1 QGMAC.本地

来自Don Burleson的网站:


…问题最有可能出现在客户端计算机主机文件中。检查客户机主机文件中是否有客户机完全限定名和短名称。

使用数据库verison更新了我的问题,并且它不在运行macOS的同一台机器上。数据库在Ubuntu机器上。我的主机文件是这样的:127.0.0.1 localhost localhost.localdomain 10.2.94.217 lynx,因为我的oracle服务器ip是10.2.94.217,运行oracle服务器的Ubuntu机器的主机名是lynx。仍然不工作在Mac终端中键入主机名会得到什么?QGMAC:~gabor_dev$hostname QGMAC.localDuplicate也提供了解决方案。