You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python执行Oracle SQL查询报错TypeError:期望字符串或字节对象

解决TypeError: expecting string or bytes object问题

嘿,我来帮你搞定这个报错~ 问题出在你读取SQL文件的方式上:

你用了f.readlines(),这个方法返回的是一个字符串列表(文件里每一行对应列表里的一个元素),但pd.read_sql()的sql参数要求传入的是单个字符串或者字节对象,所以才会触发这个类型错误。

修正方案

把读取文件的代码改成用f.read(),它会直接返回整个SQL文件的完整字符串内容,刚好符合pd.read_sql()的要求:

import pandas as pd
import cx_Oracle
from sys import exit

conn= cx_Oracle.connect('DOMINA/S#U@ex021-orc.corp.mycompany.com:1540/domp_domi_bi')

# 修正:用read()读取完整字符串
with open(r'C:\Users\Au321103\.spyder-py3\Validation\DOMINA_query.sql') as f:
    query = f.read()

# 导入到DataFrame
try:
    df = pd.read_sql(con = conn, sql = query)
finally:
    conn.close()

df.head()
exit()

额外小提示

如果你的SQL文件里有多余的空行或者注释,read()也能正常处理,pandas会自动忽略这些不影响SQL执行的内容。要是你之后遇到SQL语法错误,可以先把query打印出来看看,确认读取到的内容和你预期的SQL语句一致~

内容的提问来源于stack exchange,提问作者user2100039

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.11 08:11:18