oracle10 windows cx_Oracle无法获取Oracle环境句柄

时间:2017-12-27 15:01:45

标签: python windows oracle cx-oracle

我正在尝试在我迁移到的新服务器中设置我的python脚本但是每当我尝试使用脚本连接到数据库时,我都会收到以下错误

dbHost = 'xxxxxx'
dbPort = xxxx
dbServiceName = 'xxx.xxxx.com'
dbUser = 'xxxx'
dbPass = 'xxxx'
dnsTns = cx_Oracle.makedsn(dbHost, dbPort, dbServiceName).replace('SID','SERVICE_NAME')
dbCon = cx_Oracle.connect(dbUser, dbPass, dnsTns)

>>> dbCon = cx_Oracle.connect(dbUser, dbPass, dnsTns)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
cx_Oracle.InterfaceError: Unable to acquire Oracle environment handle

我可以使用相同的TNS用户从命令行使用sqlplus并且没有任何问题但是无法使其在脚本上运行

我的路径变量的oracle客户端文件夹设置与上一个服务器(C:\ oracle \ bin)类似。

TNS_ADMIN变量设置为“C:\ oracle \ NETWORK \ ADMIN” 尝试使用ORACLE_HOME到C:\ oracle太

Oracle客户端与服务器相同 Windows版64位 使用pip安装cx_Oracle模块5.1.3 python是2.7

1 个答案:

答案 0 :(得分:0)

我的建议是使用较新版本的cx_Oracle(6.1)使用较新的客户端(至少11.2)。它应该提供更好的错误消息。如果创建Oracle环境失败,早期版本的cx_Oracle就会放弃。较新的版本试图获得潜在的错误。