python连接Oracle数据库较为麻烦,刚开始以为按照百度上的方法安装好python环境后直接pip安装cx-Oracle就行了,但是发现这样并不行,折腾了好久。。。
除了安装python和cx-Oracle外还需要先配置客户端的环境,否则运行仍然会报错,下面介绍在windows下的配置方式
注意:
a、电脑上安装的python的版本要与cx-Oracle版本一致
本人电脑上安装的是python3.6.2 64位,则相应的cx-Oracle版本为6.2
b、本人连的是公司的服务器上的数据库,所以在本地并没有安装Oracle客户端,但是需要在本地下载 instantclient-basic 轻量级数据库
下载的版本需要与公司安装的Oracle版本一致,我们公司是Oracle11_g 64位,所以我下载的是64位的instantclient-basic V11.2.0版本
下载地址:https://www.jb51.net/database/572638.html#downintro2
c、最重要的是Oracle是64位的,则python必须也是64位的不然会报错报错报错。。。。然后python与cx-Oracle版本也要对应,否则也会报错。
好了,上面已经把需要注意的点讲清楚了,接下来正式配置了。
第一步:安装python
步骤不再重复,下载地址:https://www.python.org/downloads/release/python-362/
第二步:安装Oracle客户端instantclient-basic
下载后解压放到python安装目录下:C:\Program Files\Python36\instantclient_11_2
设置环境变量path : C:\Program Files\Python36\instantclient_11_2; 注意:后面必须添加 ; 隔开
第三步:pip安装cx-oracle
pip install cx-Oracle==6.2
第四步:python连接Oracle数据库的基本操作
(1)创建数据库连接和关闭数据库连接
方法一:用户名、密码和监听分开写 import cx_Oracle db=cx_Oracle.connect('username/password@host/orcl') db.close()
方法二:用户名、密码和监听写在一起 import cx_Oracle db=cx_Oracle.connect('username','password','host/orcl') db.close()
方法三:配置监听并连接 import cx_Oracle tns=cx_Oracle.makedsn('host',1521,'orcl') db=cx_Oracle.connect('username','password',tns) db.close()
(2)建立cursor并执行SQL语句
创建数据库连接,创建游标cursor,然后执行sql语句,执行完成后,关闭游标,关闭数据库连接
# 创建游标cursor cr = db.cursor() sql = 'select * from table_name where number=123456' # 执行sql语句 cr.execute(sql) # 一次那个返回所有结果集 fetchall rs = cr.fetchall() print("print all:%s"%rs) for x in rs: print(x) # 一次返回一行 fetchone rs=cr.fetchone() # 使用参数查询 # 直接写参数 cr.excute('select * from table_name where number=:id','id=123456') rs = cr.fetchall() # 将参数作为字典来处理 pr = {'id':'123456'} cr.excute('select * from table_name where number=:id',pr) rs = cr.fetchall() cr.close() db.close() # 插入、更新、删除操作后需要提交 include:insert、update、delete ...... cr.close() db.commit()