📜  Python中的 Oracle 数据库连接(1)

📅  最后修改于: 2023-12-03 15:04:33.902000             🧑  作者: Mango

Python中的 Oracle 数据库连接

在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 语句

我们可以使用游标对象执行 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 语句等。