【问题标题】:Using cx_oracle when muliple Oracle clients in the path当路径中有多个 Oracle 客户端时使用 cx_oracle
【发布时间】:2015-07-04 02:58:26
【问题描述】:

我正在使用 cx_Oracle 访问 Oracle 数据库一段时间,它工作正常。现在我的同事想要运行我的脚本,但我们遇到了 cx_Oracle 的问题。尝试连接数据库时出现错误:InterfaceError:无法获取 Oracle 环境句柄。 我在 stackoverflow 帖子上读到,可能的错误是在路径上找到了多个 oci.dll 文件。在我们的例子中,我们安装了两个即时客户端,我安装了即时客户端 12,还有另一个非常旧的安装,它被其他一些应用程序使用。如何告诉 Python 使用哪个即时客户端?

她使用的是 Windows XP,我安装了她的即时客户端 12、python 3.4 和 cx_oracle 5.2,均为 32 位。

【问题讨论】:

  • 你应该尝试改进问题的格式

标签: python oracle cx-oracle


【解决方案1】:

您需要确保PATHORACLE_HOME 环境变量指向相同的Oracle 客户端安装。对于PATH(您暗示可能包含多个Oracle 客户端安装),您需要确保首先出现您希望使用的那个。

您可能希望将 Python 脚本包装在一个批处理文件中,以确保在启动解释器之前正确设置这些变量,而不是依赖于这些环境变量的系统范围设置。例如,假设您将 Oracle 12.1 即时客户端安装到 C:\Oracle\instantclient_12_1

@ECHO OFF
SET ORACLE_HOME=C:\Oracle\instantclient_12_1
SET PATH=C:\Oracle\instantclient_12_1;%PATH%
python path_to_my_script.py

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-04-30
    • 2012-01-16
    • 2013-03-22
    • 1970-01-01
    • 2017-12-12
    • 1970-01-01
    • 1970-01-01
    • 2018-09-10
    相关资源
    最近更新 更多