python3.6 使用cx_Oracle时报错UnicodeDecodeError求解决

图片说明

参考GPT和自己的思路:

根据报错提示信息看,报错的代码行为 line 249,出错原因是在执行代码:cursor.description,可能是因为返回的数据包含有非 UTF-8 编码的字符。建议检查数据库连接的编码方式是否为 UTF-8,并在连接数据库时添加字符集参数charset="utf8"来保证编码一致。 可以参考下面的代码片段:

import cx_Oracle

# 连接数据库
conn = cx_Oracle.connect('username/password@host/port/service_name', charset="utf8")

# 执行查询语句
cursor = conn.cursor()
sql = "SELECT * FROM my_table"
cursor.execute(sql)

# 处理查询结果
rows = cursor.fetchall()
for row in rows:
    print(row)

# 关闭数据库连接
cursor.close()
conn.close()

另外,建议使用 try-except 语句来处理 UnicodeDecodeError 异常,以避免程序崩溃。

try:
    cursor.description
except UnicodeDecodeError as e:
    print("Decode error: ", e)

希望能帮到你!