oracle句柄错误,接口错误:无法获取Oracle环境句柄;Oracle\U HOME是正确的,SQL*Plus将连接...

你在运行什么版本的Windows?是32位还是64位?

您的Oracle即时客户端是32位还是64位?

您的Python安装是32位还是64位?

您的cx_oracle是正确的版本吗?32或64位?

MVCR90.DLL是微软Visual C++ 2008 SP1可重分发软件包的一部分。

32位版本可用here,64位版本可用here。

IESHIMS.dll将位于C:\Program Files\Internet Explorer\Ieshims.dll(32位Windows位置或64位Windows位置)或C:\ Program Files\Internet Explorer(x86)IESHIMS.dll`(64位Windows上的32位Windows位置),如果您的Windows版本是Vista或更高版本。

GPSVC.dll应该位于C:\Windows\System32中。

依赖项Walker将这最后两个DLL报告为丢失,因为Windows错误报告使用IEFrame.DLL并延迟加载,这意味着它们可能永远不需要。

我发现,为了让cx_oracle干净地导入,您需要确保其依赖项的版本匹配。您还需要确保Oracle客户端安装与您的ORACLE_HOME匹配,并且您的路径变量包含%ORACLE_HOME%/bin,它被设置为环境变量或在注册表中,并且您的tnsnames.ora文件位于TNS_ADMIN设置为的值中。如Emmanuel的答案中所述,未设置的TNS_管理设置的默认值是%ORACLE_HOME%\network\admin。

我也很少使用oracle安装程序的即时客户端版本,除非绝对必要,因为与其他版本不同,它没有设置总是确保设置或维护了路径、oracle\U HOME或TNS\U ADMIN正确,这导致找不到tnsnames.ora和OCI.dll。当同一台计算机上有多个Python版本或Oracle版本时,这会变得更加复杂。

要显式设置它们,可以使用环境变量(用户或系统),这些变量位于“控制面板”中的“系统”图标、“高级系统设置”任务、“高级”选项卡、“环境”按钮下。

关于InterfaceError: Unable to acquire Oracle environment handle,当与不解析OCI.dll相反时,这种情况会特别发生,cx悻Oracle不知道要使用哪个OCI.dll,通常情况下是这样的,因为PATH变量包含两个或多个包含OCI.dll的搜索目录。

特别是确保您的路径只包含即时客户端安装或Oracle 11G XE安装中的OCI.dll的一个瞬间,应该可以解决您的问题。

在安装Oracle11gXe之前是否卸载了即时客户端?

在命令提示中粘贴以下内容。

echo The current ORACLE_HOME is %ORACLE_HOME%

echo The current TNS_ADMIN is %TNS_ADMIN%

echo The current PATH is %PATH%

查看这些变量的当前值。

更多资源

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值