Python cx_Oracle数据库连接

作为Python小白,我在自己的电脑安装了Python3.6,Pycharm和Mysql数据库,在数据库连接时直接pip install pymysql完成。

公司的电脑winXP,Oracle 10g,我安装Python3.4

在进行Python与Oracle连接时需要cx_Oracle,没有注意版本匹配,安装了cx_Oracle-5.3-11g.win32-py3.4.exe

结果在进行数据库连接时报错cx_Oracle.DatabaseError: ORA-24315: 非法的属性类型

出现该错误的原因是因为版本不兼容,检查了一下环境,我的oracle client是10g的,当时根本没注意版本问题。

然后网上找Python3.4 Oracle 10g的cx_Oracle(费老劲了)

找到一篇博客Python cx_Oracle安装小记

cx_Oracle 可以到这里下载:http://cx-oracle.sourceforge.net/
旧版本的下载地址:http://sourceforge.net/projects/cx-oracle/files/

但是旧版本中没有Python3.4 Oracle 10g的cx_Oracle

只能卸载Python3.4安装Python3.3和cx_Oracle-5.1.2-10g.win32-py3.3.msi

import cx_Oracle

print("cx_Oracle.version:", cx_Oracle.version)
conn=cx_Oracle.connect('用户名/密码@IP:端口/数据库')
c=conn.cursor()                                                
x=c.execute('select sysdate from dual')                         
data=x.fetchone()
print(data)
c.close()                                                      
conn.close()  

成功打印系统时间

由于Python3.3没有自带pip,重新安装pip

有三点需要注意

  1. Python、Oracle 10g、cx_Oracle三个文件必须对应,都是64位或者都是32位
  2. cx_Oracle和python版本对应,不要一个2.7一个3.5,这样就很尴尬了
  3. cx_Oracle和Oracle 10g版本必须对应,在上图中可以看见都是10g(根据你服务器的oracle版本来选择)的,否则安装完依旧会报错

 

posted @ 2020-12-17 15:31  bellin124  阅读(264)  评论(0编辑  收藏  举报