【问题标题】:oracle10 windows cx_Oracle Unable to acquire Oracle environment handleoracle10 windows cx_Oracle 无法获取Oracle环境句柄
【发布时间】:2018-06-08 05:24:30
【问题描述】:

我正在尝试在要迁移到的新服务器中设置我的 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 客户端与服务器相同 10 windows版本64位 使用 pip 安装的 cx_Oracle 模块 5.1.3 python是2.7

【问题讨论】:

    标签: python windows oracle cx-oracle


    【解决方案1】:

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

    【讨论】:

    • 很想,但是我的公司服务器是 oracle10,所以我们使用那个客户端版本,所以我不能...
    • 明白。如果您甚至可以暂时使用它(即时客户端是一个简单的解压缩文件,然后您可以将其删除),您也许能够发现问题的根源。否则,祝你好运!一些配置问题阻止了连接发生。
    猜你喜欢
    • 2017-02-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-12
    相关资源
    最近更新 更多