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

添加SET NOCOUNT ON后仍触发SQLAlchemy ResourceClosedError的问题求助

添加SET NOCOUNT ON后仍触发SQLAlchemy ResourceClosedError的问题求助

我有一个查询在Microsoft SQL Server Management Studio里能正常返回数据,但用pandas读取时却遇到了下面这个错误:

sqlalchemy.exc.ResourceClosedError: This result object does not return rows. It has been closed automatically.

我之前看过类似问题,知道在查询开头加上SET NOCOUNT ON就能解决(之前也确实靠这个解决过相同错误),但这次我已经加了这个语句,却还是触发了错误。

我的查询代码大概是这样的:

query = """SET NOCOUNT ON;
    DECLARE @startdttm AS datetime
    DECLARE @enddttm AS datetime

    SET @startdttm = '01-APR-2024 00:00:00'
    SET @enddttm = '30-APR-2024 23:59:59'

    SELECT some_columns,
    INTO #temp1
    FROM table1
    WHERE date BETWEEN @startdttm AND @enddttm AND some_other_conditions
    GROUP BY some_columns

    SELECT some_columns,
    INTO #temp2
    FROM table2
    LEFT JOIN #temp1 ON some_column=some_column
    WHERE date BETWEEN @startdttm AND @enddttm AND some_other_conditions
    GROUP BY some_columns

    SELECT some_columns,
    INTO #temp3
    FROM table3
    WHERE date BETWEEN @startdttm AND @enddttm AND some_other_conditions
    GROUP BY some_columns

    SELECT columns,
    FROM   #temp2
    INNER JOIN #temp3 ON column=column
    WHERE  some conditions

    """

然后我用pandas读取的代码是:

from sqlalchemy import create_engine
import pandas as pd
engine = create_engine('connection string')
df = pd.read_sql(query, engine)

我猜问题可能和临时表的创建有关,但网上的解决方案都只提到加NOCOUNT,这次却不管用。有没有大佬知道接下来该怎么排查或者解决这个问题?

备注:内容来源于stack exchange,提问作者Emi OB

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.14 14:45:27