📅  最后修改于: 2023-12-03 15:04:33.902000             🧑  作者: Mango
在Python中,我们可以使用 cx_Oracle 库来连接和操作 Oracle 数据库。本文将介绍如何使用该库进行连接和操作。
在连接数据库前,需要先安装 cx_Oracle 库和 Oracle 客户端。安装完毕后,我们可以通过以下代码来连接数据库:
import cx_Oracle
# 连接数据库
connection = cx_Oracle.connect("username/password@hostname:port/service_name")
以上代码中,username、password、hostname、port、service_name 均为具体数据库连接信息。连接成功后,我们可以通过 connection.cursor() 方法获取游标对象,执行 SQL 语句。
我们可以使用游标对象执行 SQL 语句,例如:
import cx_Oracle
# 连接数据库
connection = cx_Oracle.connect("username/password@hostname:port/service_name")
# 获取游标对象
cursor = connection.cursor()
# 执行 SQL 语句
cursor.execute("SELECT * FROM employees")
# 获取所有结果
results = cursor.fetchall()
# 打印结果
for row in results:
print(row)
以上代码中,我们首先连接数据库,然后获取游标对象,在游标对象上执行 SQL 语句,通过 fetchall() 方法获取所有结果。最后,我们通过 for 循环遍历结果并打印。
在执行 SQL 语句时,我们还可以使用参数绑定,例如:
import cx_Oracle
# 连接数据库
connection = cx_Oracle.connect("username/password@hostname:port/service_name")
# 获取游标对象
cursor = connection.cursor()
# 执行 SQL 语句
cursor.execute("SELECT * FROM employees WHERE department_id = :dept_id", dept_id=100)
# 获取所有结果
results = cursor.fetchall()
# 打印结果
for row in results:
print(row)
以上代码中,我们将参数 dept_id 绑定到 SQL 语句的 :dept_id 参数,可以有效避免 SQL 注入等安全问题。
在操作数据库时,我们也需要考虑事务。以下是一个简单的事务处理示例:
import cx_Oracle
# 连接数据库
connection = cx_Oracle.connect("username/password@hostname:port/service_name")
# 获取游标对象
cursor = connection.cursor()
try:
# 开始事务
connection.begin()
# 执行 SQL 语句
cursor.execute("INSERT INTO employees (name, department_id) VALUES (:name, :dept_id)", name="John", dept_id=100)
# 提交事务
connection.commit()
except Exception as e:
# 回滚事务
connection.rollback()
finally:
# 关闭游标和连接
cursor.close()
connection.close()
以上代码中,我们通过 connection.begin() 开始事务,执行 SQL 语句,如果出现异常则回滚事务,最后关闭游标和连接。
本文介绍了 Python 中连接和操作 Oracle 数据库的方法,涵盖了连接数据库、执行 SQL 语句、处理事务等方面。在具体开发中,需要根据实际情况进行调整,如使用 with 语句代替 try-finally 语句等。