我的问题与Python到SQL IN参数的字符串列表有些相同,但是我有一个整数列表。我使用的python代码是:
ids = [1000032, 1000048]
sql = 'SELECT CompNo, CompName, CompType FROM Component WHERE DeptID IN (?)'
cursor.execute(sql, [','.join(ids)])
Sybase数据库引擎的响应为:
pyodbc.Error: ('07006', "[07006] [Sybase][ODBC Driver][SQL Anywhere]Cannot convert '1000032','1000048' to a numeric (-157) (SQLExecDirectW)")
正确的方法是什么?
IMO使用str.format使用占位符构建动态查询字符串的更易读的方法
ids = [1000032, 1000048]
sql = 'SELECT CompNo, CompName, CompType FROM Component WHERE DeptID IN ({0})'
sql = sql.format(','.join('?' * len(ids)))
cursor.execute(sql, (ids,))
...
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句