最近在做自动化时有访问数据库的需求,于是上网查找资料Python如何访问oracle数据库,得知需要先安装cx_Oracle驱动程序,再安装oracle客户端即可。
第一步安装cx_Oracle
如果可以联网可以直接使用如下命令进行安装
pip install cx_Oracle
如果是内网想安装必须先找到离线安装包,在https://pypi.org/project/cx-Oracle网址可以直接下载当前安装的python版本对应的安装包,因为我安装的是python3.8(32-bit),所以我下载的安装包是cx_Oracle-8.3.0-cp38-cp38-win32.whl
下载完后在文件所在目录地址栏直接输入cmd,进行安装
pip install cx_Oracle-8.3.0-cp38-cp38-win32.whl
第二步安装Oracle客户端程序instantclient,根据Oracle服务器的版本安装对应的客户端
安装完成后
打开python,输入import cx_Oracle不报错,则表示安装成功
但是在连接数据库时确报错了
看错误提示客户端程序安装的是32位的,而Oracle服务器的版本是64位的
此时,就无法访问Oracle数据库,找到原因了,就明白要想访问数据库必须要安装64位的cx_Oracle,而安装64位的cx_Oracle,必现安装64位版本的python,上网在https://www.python.org/downloads/windows/重新找到python的64位版本python-3.8.10-amd64.exe,重新安装python并重新配置环境变量后,在https://pypi.org/project/cx-Oracle网址获取64位的cx_Oracle(cx_Oracle-8.3.0-cp38-cp38-win_amd64.whl)并重新安装
再次打开新安装的python后连接成功
连接数据库的命令格式为:
db=cx_Oracle.connect(‘用户名/密码@IP:端口号/实例名’)
或者
db=cx_Oracle.connect(‘用户名’,‘密码’,‘IP:端口号/实例名’)
数据库连接成功后就是进行数据的增、删、改、查
以查询为例,完整命令及注释如下:
#连接数据库
db=cx_Oracle.connect(‘用户名’,‘密码’,‘IP:端口号/实例名’)
#创建游标
cr=db.cursor()
#赋值SQL语句
sql=‘select * from 表名 where 查询条件’
#执行SQL
cr.execute(sql)
#获取返回结果
result=cr.fetchone()
#打印结果
print (result)
#关闭游标
cr.close()
#关闭数据库连接
db.close()