【发布时间】:2017-08-08 19:48:43
【问题描述】:
我正在尝试将列表绑定到 sqlalchemy 中原始 SQL 查询中的参数。 This post 建议使用psycopg2 这样做的好方法,如下所示。
some_ids = [1, 2, 3, 4]
query = "SELECT * FROM my_table WHERE id = ANY(:ids);"
engine.execute(sqlalchemy.sql.text(query), ids=some_ids)
但是,这似乎不适用于 SQL Server 和 pyodbc 的环境。只添加了一个 "?" 而不是 4 个。
sqlalchemy.exc.ProgrammingError: (pyodbc.ProgrammingError)
('Invalid parameter type. param-index=0 param-type=tuple', 'HY105')
[SQL: 'SELECT * FROM my_table WHERE id = ANY(?);'] [parameters: ((1, 2, 3, 4),)]
有什么办法可以使这个工作吗?如果可能,我想避免使用manually creating placeholders。
sqlalchemy 版本=1.0.13,pyodbc 版本=4.0.16
【问题讨论】:
标签: python sql-server sqlalchemy pyodbc