前言:
由于之前的在职的公司没有机会接触到Oralce数据库,所以就没有用python连接过Oralce,之前大多集中在连接mysql 和sql server。
最近在做一下web 自动化的工作,所以简单的记录一下。网上很多人说,在连接oracle的时候不建议pip install cx_Oracle,因为使用的时候会报错,报错不可怕,可怕的是自己不知道怎么解决。今天将总结一下过程中遇到的问题和解决办法。
如果你直接pip install cx_Oracle,那么直接在python代码中去import是没有问题的,问题是在连接数据库的时候会报错。(我的环境是Windows系统)
大概如下报错: cx_Oracle.DatabaseError: DPI-1047
如何来解决:
1、查看自己的Oracle的版本号。

select * from v$version;

python连接assess Python连接oracle_oracle

下载对应版本的的Oracle客户端,地址如下:

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

找到自己的对应的版本:

python连接assess Python连接oracle_python连接assess_02


下载下来后:

解压到自己想要的位置。

如:D:\指定路径\instantclient_11_2

这里你可以配置环境变量,也可以不用配置,个人建议顺手就配置一下。

然后下载

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

这里我解释一下:这个就是Oracle的包(和pip install cx_Oracle一样的,只不过这样是下载最新版本,我的本机是8.0)

import cx_Oracle
print(cx_Oracle.__version__)
8.3.0    这就是我安装的pip最新版本
想要下载指定的版本可以这样:pip install cx_Oracle==对应版本号

紧接着我们手动下载来进行安装:点击上面的下载地址,然后进入下载页面,ctrl+f进行搜索,cx_Oracle,找到适合自己的版本的包。

(我这边的python版本是3.10的,而且是64位的,因此我下载的就是:cx_Oracle‑8.3.0‑cp310‑cp310‑win_amd64.whl)

python连接assess Python连接oracle_python_03


下载之后,进入到cx_Oracle‑8.3.0‑cp310‑cp310‑win_amd64.whl的下载目录,进入当前目录的cmd命令窗口。

执行如下命令进行安装:pip install  cx_Oracle‑8.3.0‑cp310‑cp310‑win_amd64.whl
---如果安装成功,那么说明你之前没有安装过,而且你的python的环境变量配置成功了的。
---如果安装失败,那可能你的python环境变量没有配置。
---如果安装重复,那么说明你之前用pip install cx_Oralce。(如果不信,可以用pip uninstall 命令先把之前的卸载了。)
pip uninstall cx_Oracle   卸载命令

这样你认为就结束了吗,不,你想多了。但是还差最后的一步。

将之前下载对应版本的的Oracle客户端的安装目录打开(instantclient-basic-windows.x64-11.2.0.4.0.zip解压后):

python连接assess Python连接oracle_python连接assess_04


将所有的.dll文件全部拷贝到python的根目录去。

这样就可以连接你的oracle了。

import cx_Oracle
conn = cx_Oracle.connect('账号','密码','数据IP:端口/数据库实例名称')
cusor = conn.cursor()
print('连接数据库成功!')
print(cx_Oracle.__version__)

python连接assess Python连接oracle_新版本_05