Python操作Oracle数据库:cx_Oracle
Python 操作 Oracle 数据库多用 cx_Oracle 这个第三方扩展,总体而言,cx_Oracle 的使用方式与 Python 操作 MySQL 数据库的 pymysql 库还是很相似的。
安装与导入
1 | pip install -i https://pypi.douban.com/simple cx_oracle |
使用前导入:
1 | import cx_Oracle |
千万注意,包名称 cx_Oracle 中,字母 “O” 是大写的,写成小写将会导入失败。
安装好 cx_Oracle 第一次使用时,出现 DatabaseError: DPI-1047,可以按照官方文档解决:https://oracle.github.io/odpi/doc/installation.html#linux
创建连接
cx_Oracle 提供了两种方式连接 Oracle 数据库:创建独立的单一连接以及创建连接池。
单一连接
通过 cx_Oracle.connect() 方法实现:
1 | # 基本连接 |
关闭连接:
1 | connection.close() |
连接池
使用 SessionPool() 创建连接池,需要额外指定最少连接数(min)和最大连接数(max):
1 | # 创建连接池 |
多线程下使用时,应该传递 threaded=True:
1 | pool = cx_Oracle.SessionPool("username", "password", |
游标
通过连接获取游标:
1 | cur = connection.cursor() |
游标使用完毕后记得关闭:
1 | cur.close() |
执行SQL
Cursor.execute() 方法一次只能执行一条 SQL 语句,Cursor.executemany() 一次可执行多条 SQL,当有类似的大量 SQL 语句需要执行时,使用 executemany() 可以极大提升性能。
1 | cur.execute("select * from SCOTT.STUDENTS") |
注意事项
- cx_Oracle 执行的语句都含有分号
;或斜杠/ - 连接Oracle需要安装 Oracle Instant Client
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 符十三郎!

