python oracle数据库操作_Python 连接 oracle 数据库总结

最近公司要求使用python查询oracle数据库,下面把网上的资料整理一下:

1)python安装cx_Oracle模块,可以下载离线包,最好在线pip 安装。

2)安装oracle客户端:地址:http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html

这里有各种版本,结合自己的机器下载相应版本就好。我下载的是32位的basic11版本(注意要和自己python的版本相符,我自己电脑里面有python2.7(32位)和python3.4(64位));将解压好的文件夹路径加入环境变量(我的路径是:E:\instantclient_11_2),并且在该文件夹中新建一个文件tnsnames.ora,内容是:

jasonChang =

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = 10.130.201.118)(PORT = 1521))

)

(CONNECT_DATA =

(SERVER = DEDICATED)

(SERVICE_NAME = tkpi)

)

)

3)代码连接数据库:

import cx_Oracle #引用模块cx_Oracle

conn=cx_Oracle.connect('tkinsure','ins185','10.137.146.5:1521/tkpi') #连接数据库

rs=conn.cursor() #获取cursor

rs.execute('select sudo from tickl') #使用cursor进行各种操作

result = rs.fetchall()

print(result)

rs.close() #关闭cursor

conn.close()

备注:如果在代码中遇到了莫名其妙的错误,请查看oracle客户端的版本是不是适合python版本,或者python和cx_Oracle 是不是合适,因为我在运行代码的时候发现了一个错误:

conn = cx_Oracle.connect('tkinsure','ins185','10.137.146.5:1521/ursl')

UnicodeDecodeError: 'utf-8' codec can't decode bytes in position 82-83: invalid continuation byte,乍一看是编码的问题,实际上是oracle客户端版本(instantclient_11_2)和python版本不兼容的问题,其实归根揭底还是编码的问题啦!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值