cx_Oracle连接数据库时报错: cx_Oracle.DatabaseError: DPI-1047


一、查看版本

首先,查看python版本与Oracle的客户端是否都是64位或者32位

查看python安装目录

pip --version

二、下载Oracle客户端

1、查看oracle版本

SELECT * FROM v$version;

查询出的oracle版本是19,于是需要下载对应的版本,下载地址:

https://www.oracle.com/database/technologies/instant-client/winx64-64-downloads.html

添加环境变量,将下载好的客户端解压,并将其添加进环境变量,比如:C:\tool\instantclient-basic-windows.x64-19.11.0.0.0dbru\instantclient_19_11

三、下载cx_Oracle

查看到windows为64位,然后python是3.8版本64位,于是选择cx_Oracle也应该是与python对应的版本。

下载地址:https://www.lfd.uci.edu/~gohlke/pythonlibs/#pyhook

安装cx_Oracle包,注意安装的时候,最好是下载后在用pip执行安装命令,否则可能会报错。

pip install C:\tool\cx_Oracle-8.2.0-cp38-cp38-win_amd64.whl

然后确认是否添加oracle客户端的环境变量

四、添加oracle客户端.dll文件至python目录

把oracle客户端的安装文件中以.dll结尾的文件复制到python的安装目录中

五、分析思路

1、查看加载的环境变量

查看python是否加载了环境变量

import os
os.environ

2、查看加载的客户端版本

注意,navicate和python程序加载的版本不相同。例如:

python加载的版本是instantclient_11_2,所以此时需要将instantclient_11_2文件夹下的dll文件拷贝至python的安装目录中

navicate加载的版本是instantclient_12_2

参考:https://blog.csdn.net/niko_csdn/article/details/104271908


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM