python调oracle有两种方法,1通过cx_oracle(需要各种配置,本地还需要装oracle客户端),2通过java的jdbc。
准备:需要安装java环境,java的驱动jar包,jaydebeapi第三方包,jpype第三方包,
代码:
# coding=utf8
try:
con = jaydebeapi.connect('oracle.jdbc.driver.OracleDriver',
'jdbc:oracle:thin:@//xxxxxxx', [user, passwd],
'xxx.jar')
cursor = con.cursor()
cursor.execute('select * from ABC')
r = cursor.fetchall()
print(r)
except Exception as e:
print(e)
finally:
if cursor:
cursor.close() # 关闭游标
if con:
con.close() # 关闭数据库连接
其中有一个坑:
jpype模块是作为单例存在的,在web框架中如果进程没重启,加载过一次,第二次会做判断:
如果 isJVMStarted() 返回为真,新的配置参数不会被加载。解决办法:可以考虑开启新的进程。