cx_Oracle 是一个 Python 扩展模块,它允许 Python 开发者访问 Oracle 数据库。使用 cx_Oracle,你可以执行 SQL 语句处理查询结果、以及管理数据库连接等。以下是一些基本的 cx_Oracle 用法示例。

安装 cx_Oracle

首先,你需要安装 cx_Oracle。这通常可以通过 pip 来完成,但请注意,你可能需要安装 Oracle 的即时客户端**(Instant Client)**或使用 Oracle 的完整客户端,因为 cx_Oracle 需要 Oracle 的客户端库。

pip install cx_Oracle

确保你的环境变量(如 LD_LIBRARY_PATH 在 Linux 上,或 PATH 和 ORACLE_HOME 在 Windows 上)已经设置正确,以便 Python 能够找到 Oracle 的客户端库。

连接数据库

使用 cx_Oracle.connect() 方法连接到 Oracle 数据库。你需要提供数据库的用户名、密码、以及连接字符串**(DSN)**。

import cx_Oracle  
  
dsn_tns = cx_Oracle.makedsn('主机名', 端口, service_name='服务名')  
conn = cx_Oracle.connect(user='用户名', password='密码', dsn=dsn_tns)  
  
# 或者,如果你使用 EZCONNECT 格式(简单连接),可以直接传递一个字符串  
# conn = cx_Oracle.connect('用户名/密码@主机名:端口/服务名')

创建游标并执行 SQL

创建游标对象,并使用它执行 SQL 语句。

cursor = conn.cursor()  
  
# 执行查询  
cursor.execute("SELECT * FROM 表名")  
  
# 获取所有查询结果  
for row in cursor:  
    print(row)  
  
# 也可以使用 fetchall()、fetchone() 或 fetchmany() 方法来获取结果  
# results = cursor.fetchall()  
# for row in results:  
#     print(row)  
  
# 插入数据  
cursor.execute("INSERT INTO 表名 (列1, 列2) VALUES (:1, :2)", ('值1', '值2'))  
conn.commit()  # 提交事务  
  
# 更新和删除数据的操作类似

使用字典游标

cx_Oracle 允许你使用字典游标,这样每一行数据就会以字典的形式返回,键是列名。

cursor = conn.cursor(cursorclass=cx_Oracle.DictCursor)  
cursor.execute("SELECT * FROM 表名")  
  
for row in cursor:  
    print(row['列名'])

关闭连接

完成数据库操作后,关闭游标和连接。

cursor.close()  
conn.close()

注意事项
确保 Oracle 客户端库已正确安装,并且环境变量已设置。
使用参数化查询来防止 SQL 注入。
在处理大量数据时,考虑使用批量插入或其他优化技术。
在处理敏感信息(如数据库密码)时,请确保遵守最佳安全实践。
cx_Oracle 的版本应与你的 Oracle 数据库版本兼容。
cx_Oracle 是一个功能强大的库,它提供了丰富的接口来与 Oracle 数据库进行交互。上述示例只是展示了其基本用法,你可以根据需要探索更多高级特性。

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐