使用pyodbc的参数化查询中的元组参数

时间:2018-11-16 08:48:37

标签: sql pyodbc parameterized-query

一段时间以来,我一直在使用参数化查询,例如

SELECT *
FROM table 
WHERE table.id <> ?

将占位符的单个代码作为参数传递。

现在我需要输入多个例外。我以为,而不是

SELECT *
FROM table 
WHERE table.id <> ? and table.id <> ? and table.id <> ?

并将参数作为三个值[v1, v2, v3]的列表传递,使用not in

看起来会更好
SELECT *
FROM table 
WHERE table.id not in ? 

,并在参数中使用单个值(v1, v2, v3)。这样做非常好,因为如果添加了新的异常,并且例如可以从文件中获取它们,那么如果需要将新值用作异常,则无需修改代码。

但是我收到错误消息

pyodbc.ProgrammingError: ('Invalid parameter type.  param-index=1 param-type=tuple', 'HY105')

似乎元组不能用作参数。我还尝试了列表[v1, v2, v3]set([v1, v2, v3]),似乎没有任何作用。

这应该怎么做?

编辑:戈登是对的,事实证明这是完全相同的问题。

0 个答案:

没有答案