python连接Oracle数据库

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 FilesPython36instantclient_11_2 

    设置环境变量path : C:Program FilesPython36instantclient_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()

 

原文地址:https://www.cnblogs.com/wulixia/p/11285228.html