标签:locate python 32 Client 报错 Oracle 64 客户端
使用 OmniDB 软件 连接Oracle数据库时 ,报错 Cannot locate a 32-bit Oracle Client library
;
在网上查看说这是由于Oracle客户端instanceclient, 系统, Python 三者版本位数不对应。
解决过程
-
首先查看数据库服务端的版本:
SELECT * FROM V$VERSION
查询结果是64位 -
查看python版本:
也是64位;
按理说Oracle客户端instanceclient不匹配的话应该要报错
Cannot locate a 64-bit Oracle Client library
64位才对,而不是32位 -
先到Oracle client官网下载https://www.oracle.com/database/technologies/instant-client/downloads.html instantclient-basic-windows.x64-12.2.0.1.0.zip 12版本的64位客户端文件,把Oracle服务端下的oci.dll文件替换为下载的压缩包中的,然而还是报错(其中重启了软件和数据库也没用);
-
没办法,只能先抱着试一试的心态下载32位的客户端文件,并再次替换数据库中的oci.dll,结果这次连启动Oracle也不行了。
-
再次查看网上的解决方案,其中说到需要配置客户端的环境变量;因为数据库就安装在本机,我是没有配置的,鉴于之前的报错问题为32bit,还是把32位的客户端文件路径配置上去。如下:
将客户端的文件路径放于服务端之前,避免又读到服务端64位的oci.dll。
重启系统后,连接未报错。
后续:
之前困惑于这个报错提示,DP-1047:Cannot locate a 32-bit Oracle Client library
为 python的 Cx_oracle包连接时的错误,为什么用这个软件连接会有。
后面看到软件安装路径下全是python文件,这才意识到OmniDB 是 python写的,所以。。
标签:locate,python,32,Client,报错,Oracle,64,客户端 来源: https://blog.csdn.net/qq_32392597/article/details/111434283
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。