【发布时间】:2021-12-26 09:03:24
【问题描述】:
我通过 Python 的 SQLAlchemy 库将一个非常简单的 SQL 查询传递给服务器。这是我的代码:
def query4():
ed_notes = sa.Table("ED_NOTES_MASTER",metadata,autoload=True,autoload_with=engine)
note_query = sa.select([ed_notes.columns["PT_FIN"],
ed_notes.columns["RESULT_TITLE_TEXT"],
ed_notes.columns["RESULT"],
ed_notes.columns["RESULT_DT_TM"]]).where(ed_notes.columns["PT_FIN"].in_(unique_fins)).where(start_time<ed_notes.columns["RESULT_DT_TM"]).where(end_time>ed_notes.columns["RESULT_DT_TM"])
result = connection.execute(note_query)
resultset = result.all()
note_data_prelim = pd.DataFrame(resultset)
return note_data_prelim
变量“unique_fins”是我试图专门查询的超过 50,000 个唯一标识符的列表。运行此查询时,会出现以下错误:
sqlalchemy.exc.ProgrammingError: (pyodbc.ProgrammingError) ('The SQL contains -11872 parameter markers, but 53664 parameters were supplied', 'HY000')
对正在发生的事情有任何想法吗?问题肯定出现在查询的 ed_notes.columns["PT_FIN"].in_(unique_fins) 部分。
提前致谢!
【问题讨论】:
-
向我们展示问题 SQL 也
-
同意.. print(str(note_query))
-
底层数据库又是什么?可能你已经达到了参数限制。
标签: python sql sqlalchemy odbc pyodbc