python连接oracle数据库

在python连接oracle数据库时走了不少弯路,主要是版本问题。下面记录一下安装时遇到的版本问题

pthon连接oracle需要先引入cx_Oracle模块

1.从官网下载https://pypi.python.org/pypi/cx_Oracle 下载了一个7.0.0版本的安装成功后, 在python环境下输入import cx_Oracle校验时发现报版本太高的错

 

2.又从官网下载了一个cx_Oracle-5.3-11g.win32-py2.7.exe版本,发现还是报ORA-24315 --版本不一致

通过百度发现python版本位数 与cx_Oracle版本位数 与oracle客户端版本位数 都要想一致。

  我的python版本2.7,32bit

  oracle是从oracle官网下载的http://www.oracle.com/technetwork/topics/winsoft-085727.html   instantclient-basic-win32-10.2.0.5.zip  --32位10.2的

  cx_Oracle版本cx_Oracle-5.1.2-10g.win32-py2.7.msi  --32位for 10g py2.7的

上述都安装好后,进入oracle10g的目录,复制oci,oraocci11,oraociei11的3个DLL粘贴到你的python安装目录的Libs/site-packages文件夹下面

 

3.上面工作做完,已经确保了版本都一样,但是执行import cx_Oracle依然报ORA-24315 --版本不一致。

此时才发现我先后安装了3个版本的cx_Oracle,那么读取到的是不是就不是5.1.2-10g的版本了咧? 

从而我进入了cx_Oracle的安装目录 ,也就是python安装目录下的Lib\site-packages,删除了cx_Oracle.pyd及7.0.0及5.3-11g版本的记录,然后又重新打开cx_Oracle-5.1.2-10g.win32-py2.7.msi并安装

 

4.在python环境输入 

import cx_Oracle

conn=cx_Oracle.connect('username/password@host:port/SERVICE_NAME')

c=conn.cursor()               #获取cursor()

x=c.execute('select * from merch_merchant')  #使用cursor()操作查询

x.fetchone()                  #展示查询结果,fetchone函数是获得一行结果,fetchall函数是获得所有行结果。均为元组

c.close()                  #关闭cursor()

conn.close()                #关闭数据库连接

参考:https://www.cnblogs.com/Leo_wl/p/3288402.html

 

5.ok,总算连接成功,由此可见python除了大小写敏感,对版本要求也相当高。

它连接数据库应该调用的是本地的oracle客户端, 在整个过程中与oracle服务端的版本并没有关系。

另外网上提到的需要配置环境变量的,我并未配置,也连接成功了。

转载于:https://www.cnblogs.com/mwg666/p/9983047.html

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值