参考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)
希望能帮到你!