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() 返回为真,新的配置参数不会被加载。解决办法:可以考虑开启新的进程。

这篇博客介绍了两种在Python中连接Oracle数据库的方法,一是使用cx_Oracle,二是通过Java的jdbc和jaydebeapi库。在使用jaydebeapi时,需要安装Java环境、jdbc驱动jar包以及jaydebeapi和jpype。注意jpype模块的单例特性可能导致配置无法更新,解决方案是启动新进程。示例代码展示了如何利用jaydebeapi连接并执行SQL查询。

1377

被折叠的 条评论
为什么被折叠?



