Python连接Oracle数据库完整指南:环境配置与代码示例

晚来风
晚来风
发布时间:2026-10-13 | 2人浏览过
原创

本文详细介绍如何在Python中通过cx_Oracle库连接Oracle数据库。涵盖从安装包下载、Instant Client配置到环境变量设置的全过程,并提供连接测试、建表插入及两种查询方式(fetchall与fetchone)的完整代码示例,帮助开发者快速掌握Python与Oracle的交互技巧。

本文通过具体实例演示如何使用Python进行Oracle数据库操作,内容供读者参考学习。

首先,为了让Python能够操作Oracle数据库,必须安装cx_Oracle包。读者可通过以下地址获取该安装包:

http://cx-oracle.sourceforge.net/

此外,还需要依赖Oracle的相关类库。因此,在运行Python的机器上必须安装Oracle Instant Client软件包,获取地址如下:

http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html

根据所在平台选择合适的包进行安装。例如,若使用的是rpm包,可执行以下命令完成安装:

$ sudo rpm -ivh oracle-instantclient11.2-basic-11.2.0.3.0-1.i386.rpm

安装完成后,还需配置相应的环境变量,具体设置如下:

复制代码 代码如下:
$ export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/usr/lib/oracle/11.2/client/lib

接下来,创建一个简单的Python文件以测试安装是否成功。

import cx_Oracle
conn = cx_Oracle.connect('fkong/fkong@172.17.23.129/orcl')
cursor = conn.cursor ()
cursor.execute ("select * from dual")
row = cursor.fetchone ()
print row[0]
cursor.close ()
conn.close ()

随后,演示数据库中的建表与数据插入操作。

import cx_Oracle
conn = cx_Oracle.connect('fkong/fkong@172.17.23.129/orcl')
cursor = conn.cursor ()
cursor.execute ("CREATE TABLE TEST(ID INT, COL1 VARCHAR(32), COL2 VARCHAR(32), COL3 VARCHAR(32))")
cursor.execute ("INSERT INTO TEST (ID, COL1, COL2, COL3)VALUES(1, 'a', 'b', 'c')")
cursor.execute ("INSERT INTO TEST (ID, COL1, COL2, COL3)VALUES(2, 'aa', 'bb', 'cc')")
cursor.execute ("INSERT INTO TEST (ID, COL1, COL2, COL3)VALUES(3, 'aaa', 'bbb', 'ccc')")
conn.commit()
cursor.close ()
conn.close ()

接着介绍查询操作,通常有两种实现方式:一是使用cursor.fetchall()获取所有结果后逐行迭代;二是通过cursor.fetchone()每次获取一条记录,直至返回空值。具体示例如下:

import cx_Oracle
conn = cx_Oracle.connect('fkong/fkong@172.17.23.129/orcl')
cursor = conn.cursor ()
cursor.execute ("SELECT * FROM TEST")
rows = cursor.fetchall()
for row in rows:
  print "%d, %s, %s, %s" % (row[0], row[1], row[2], row[3])
print "Number of rows returned: %d" % cursor.rowcount
cursor.execute ("SELECT * FROM TEST")
while (1):
  row = cursor.fetchone()
  if row == None:
    break
  print "%d, %s, %s, %s" % (row[0], row[1], row[2], row[3])
print "Number of rows returned: %d" % cursor.rowcount
cursor.close ()
conn.close ()

更多关于Python数据库操作、编码技巧、数据结构、Socket编程、函数使用、字符串处理、基础进阶及文件目录操作的详细内容,可查看本站相关专题:《Python常见数据库操作技巧汇总》、《Python编码操作技巧总结》、《Python数据结构与算法教程》、《Python Socket编程技巧总结》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》。

希望本文所述内容能对大家的Python程序设计有所帮助。

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表