python用cx_Oracle连接oracle

时间:2019-11-27
本文章向大家介绍python用cx_Oracle连接oracle,主要包括python用cx_Oracle连接oracle使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

确认版本:

oracle版本:64位

python版本:64位

下载cx_Oracle的whl包:64位

安装whl包:pip install wheel

cd到下载路径安装cx_Oracle的whl包:pip install cx_Oracle-7.2.3-cp36-cp36m-win_amd64.whl

安装后到python目录下有文档,里面有使用方法:https://oracle.github.io/python-cx_Oracle/index.html

由于数据库版本是11,所以这里下载11对应的instant文件win64位:https://www.oracle.com/database/technologies/instant-client/winx64-64-downloads.html

下载解压,这里为了方便管理,将下载的instant文件解压到python文件夹下

在环境变量path中加入此路径

将此instantclient_11_2下此3个ddl文件拷贝到python的site-packages下

运行测试脚本,没有报错,并且打印出了数据信息,说明连接成功

import cx_Oracle

conn = cx_Oracle.connect('用户名/密码@ip:端口/服务名')
curs = conn.cursor()
sql = 'select * from product_component_version'
curs.execute(sql)

for result in curs:
print(result)

curs.close()
conn.close()

安装过程中的一些坑: 

若报错:cx_Oracle.DatabaseError: DPI-1050: Oracle Client library is at version 0.0 but version 11.2 or higher is needed

需更换instantclient为数据库对应的版本,网上有人说是换cx_Oracle版本,其实不是的

最后成功连接数据库的环境版本:

python:3.6 - 64bit
oracle数据库:11.2.0.2.0 - 64bit
cx_Oracle:7.2.3 - 64bit
instantclient:11.2.0.4.0 - 64bit

原文地址:https://www.cnblogs.com/zhongyehai/p/11939975.html