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

如何用Python Pandas加载文本文件中的超大型SQL查询并执行?

解决Pandas read_sql执行大型SQL脚本时的DatabaseError问题

嘿,我来帮你搞定这个问题!你遇到的错误核心原因很简单:pd.read_sql()需要接收字符串格式的SQL语句,但你直接把打开的文件对象(就是报错里的_io.TextIOWrapper)传进去了,它根本没法识别这个类型~

具体解决步骤:

  1. 正确读取文件内容为字符串
    你之前的query1 = open("Script.txt","r")只是打开了文件,并没有把文件里的SQL内容读出来。得用.read()方法把文件内容转换成字符串,而且推荐用with语句(自动帮你关闭文件,更安全):

    with open("Script.txt", "r", encoding="utf-8") as f:
        query1 = f.read()
    

    如果你的文件有特殊编码(比如GBK),记得把encoding参数改成对应的编码格式

  2. 清理SQL字符串中的多余包裹符
    你提到文本文件里用"""包裹了SQL查询,这时候读出来的字符串会包含这三个引号,得把它们去掉才能让数据库正确解析:

    # 去掉首尾的空白字符,再去掉前后的"""
    query1 = query1.strip().strip('"""')
    
  3. 执行SQL查询
    现在query1已经是纯SQL字符串了,再传给pd.read_sql就没问题啦:

    df_ora1 = pd.read_sql(query1, con=connection1)
    

额外小贴士(针对超大型SQL):

如果你的5000多行SQL是由多个语句组成的(比如多个SELECT或DML),pd.read_sql可能没法一次性执行所有语句,这时候你可能需要拆分SQL,或者用数据库连接的原生方法(比如cursor.execute()循环执行)。但如果只是一个完整的查询语句(比如一个复杂的SELECT),上面的方法就完全够用~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.08 16:32:35