2017-12-27 437 views
0

我想在我正在迁移到的新服务器中设置我的python脚本,但是每当我尝试连接到脚本的数据库时出现以下错误oracle10 windows cx_Oracle无法获取Oracle环境句柄

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客户端是10相同服务器 视窗版本64位 cx_Oracle模块5.1.3安装使用pip 蟒蛇是2.7

回答

0

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

+0

很想,但我公司的服务器是oracle10,所以我们使用那个客户端版本,因此我不能... – user2919673

+0

了解。如果你可以暂时使用它(即时客户端是一个简单的解压缩,然后你可以删除),你可能会发现问题的根源。否则,祝你好运!一些配置问题阻止了连接的发生。 –