我正尝试在要迁移到的新服务器上设置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,并且可以毫无问题地通过,但不能让它在脚本上工作
我的path变量设置了与前一个服务器(C:\ oracle \bin)类似的oracle客户端文件夹。
TNS_ADMIN变量设置为" C:\oracle \NETWORK\ADMIN“也尝试使用ORACLE_HOME连接到C:\oracle
Oracle客户端与服务器windows版本相同64位cx_Oracle模块5.1.3使用pip python安装的版本为2.7
发布于 2018-01-03 05:14:28
我的建议是使用较新的客户端(至少11.2)和较新版本的cx_Oracle (6.1)。它应该提供更好的错误信息。如果创建cx_Oracle环境失败,早期版本的Oracle就会放弃。较新的版本会尝试获取潜在错误。
https://stackoverflow.com/questions/47994326
复制相似问题