添加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
相关产品推荐
相关产品推荐

