【发布时间】:2014-09-19 18:38:23
【问题描述】:
我收到一个错误:
文件“pymssql.pyx”,第 443 行,在 pymssql.Cursor.executemany (pymssql.c:6616) 文件“pymssql.pyx”,第 417 行,在 pymssql.Cursor.execute (pymssql.c:6057) 文件“_mssql.pyx”,第 943 行, 在 _mssql.MSSQLConnection.execute_query (_mssql.c:9858) 文件中 “_mssql.pyx”,第 974 行,在 _mssql.MSSQLConnection.execute_query (_mssql.c:9734) 文件“_mssql.pyx”,第 1091 行,在 _mssql.MSSQLConnection.format_and_run_query (_mssql.c:10814) 文件“_mssql.pyx”,第 1113 行,在 _mssql.MSSQLConnection.format_sql_command (_mssql.c:11042) 文件“_mssql.pyx”,第 1797 行,在 _mssql._substitute_params (_mssql.c:18646) ValueError: sql 中的占位符比可用的参数多
在执行批量插入到 mssql 表时 (executemany)。在一个执行语句中以及在 mssql 管理工作室中插入相同的数据就可以了。
我尝试使用字典和元组执行许多(数据) - 结果相同。
代码:
cursor.executemany("insert table Values (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)", (data))
有什么想法吗?
【问题讨论】:
-
你能发布
print(len(data))和print(set(map(len, data)))的结果吗? -
len(data)==602 set(map(len,data)==set([11,12,13,15,16,17,18,19,20,21])
-
查看我的更新答案
-
对,我应该考虑到这一点。已解决,谢谢!
标签: python sql sql-server pymssql executemany