当前位置: 首页 > 知识库问答 >
问题:

Python+cx_Oracle:无法获取Oracle环境句柄

朱兴学
2023-03-14

背景。
我的操作系统是Win7 64bit。
我的Python是2.7 64bit(来自Python-2.7.8.amd64.msi)
我的cx_Oracle是5.0 64bit(来自Cx_Oracle-5.0.4-10g-Unicode.win-amd64-py2.7.msi)
我的Oracle客户端是10.1(我不知道32或64 arch,但SQL*Plus是10.1.0.2.0

数据库为
Oracle Database 10g Enterprise Edition 10.2.0.4.0-64位
PL/SQL 10.2.0.4.0-Production
CORE 10.2.0.4.0 Production
64位Windows的TNS:10.2.0.4.0-Production
NLSRTL 10.2.0.4.0-Production

ORACLE_HOME变量从haki回复中添加。
C:\Oracle\Product\10.1.0\Client_1\

不工作的问题依然存在。

ORACLE_HOME从instantclient-basic-win64-10.2.0.5.zip c:\instantclient_102\

C:\users\paviliong4>sqlplus lee/123@chstchmp
初始化sql*plus
消息文件sp1.msb时出现错误6找不到
SP2-0750:您可能需要将ORACLE_HOME设置到Oracle软件目录

我的SQL*Plus不允许我设置Oracle。

ORACLE_HOME返回
C:\oracle\product\10.1.0\client_1\

路径变量
C:\Program Files(x86)\Seagate Software\Notes\
C:\Program Files(x86)\Seagate SoftwareLES\MATLAB\R2013A\bin
C:\Python27

TNS为:
C:\Oracle\Product\10.1.0\Client_1\Network\Admin\TNSnames.ora
REPORT1=
(描述=
(ADDRESS_LIST=
(地址=(协议=TCP)(主机=172.28.128.110)(端口=1521))
)
(CONNECT_DATA=
(SERVICE_NAME=REPORT1)
)

f1.py显示错误
import cx_oracle
ip='172.25.25.42'
port=1521
SID='report1'
dns_tns=cx_oracle.makedsn(ip,port,SID)
connection=cx_oracle.connect(u“lee”,u“123”,dns_tns)
cursor=connection.cursor()connection.close()

错误
追溯(最近一次调用):
文件“f1.py”,第6行,在
连接=cx_html" target="_blank">oracle.connect(u“lee”,u“123”,dns_tns)
cx_oracle.interfaceerror:无法获取Oracle环境句柄

问题
1。如何获取Oracle环境句柄?
我已经搜索了网站。不幸的是,他们根本没有碰到我的问题。
2。如何让Python使用另一个Oracle客户机而不影响现有客户机?

共有1个答案

公西鸿博
2023-03-14

如果python在路径中发现多个oci.dll文件(即使它们是相同的),它将抛出这个错误。(您的path语句看起来可能会抛出多个语句)。您可以操作脚本中的路径来约束python将在哪里查找支持ORACLE文件,如果您必须在本地运行ORACLE/Clients的多个版本,这可能是您的唯一选择。

 类似资料:
  • 我需要的是一种适当的方法,让这个方法获得值。 将这个“sdk.root”放在哪里,以便IntelliJ提取它?在属性文件中还是在bash中?

  • 本文向大家介绍Java获取JVMTI环境,包括了Java获取JVMTI环境的使用技巧和注意事项,需要的朋友参考一下 示例 内部Agent_OnLoad方法:            

  • 问题内容: 升级到Laravel 5.2后,没有任何文件值被读取。我遵循了升级说明;除auth.php外,我的所有配置文件均未更改。它们在以前的版本5.1.19中都正常工作 包含诸如 包含 我收到此错误: 显然没有拉入我的环境配置。这正在影响我的每个配置文件,包括第三方(例如bugsnag)。 我也试过 更新资料 试 我尝试安装Laravel 5.2的新副本。我基本上只复制到我的文件夹中;不包括其

  • 问题内容: 我正在尝试读取Django设置中的一些环境变量,我在/home/user/.bashrc中定义了该变量(后来在/etc/bash.bashrc中定义了),但是我得到的只是一个KeyError异常。我知道我的环境变量已设置,因为我可以在终端(回显$ VAR_NAME)中打印它们。这应该是微不足道的。 这是我正在使用的代码。 我只是找不到什么。有什么建议吗? 谢谢 编辑:使用mod_wsg

  • 问题内容: 在Eclipse中调试后,出现此错误。虽然调试成功。 这是什么意思? 问题答案: 看起来像http://bugs.sun.com/view_bug.do?bug_id=6476706,它的优先级较低,但仍未修复。绝对是野马的错误,但没有明确的解释(根据错误报告者的说法,似乎是随机发生的)。

  • 我正在尝试在我的 Glassfish 4 中建立 JDBC 连接,但它抱怨当我 ping 它时 URL 不正确。 到目前为止,我已经将ojdbc6.jar和ojdbc7.jar文件复制到Glassfish 4中 我的常规设置如下所示: 我的附加属性如下所示: 在我的Oracle Devloper中,我的设置如下所示: 知道我做错了什么吗?我错过了斜线还是什么?