我想从Python插入sql Server。这是我的代码:
for value in rows:
cursor.execute ("""INSERT INTO Table ([ColumnOne]) VALUES (?)""", value)
cnxn.commit()
在rows
中,它包含行的列表(迭代),类似的东西:第1行包含浮点数的列表
1.0 2.0 1.5 1.75
.....(一行/列中总共有1000个值),Row2,Row3等也是如此。但是,当我尝试运行代码时,我有此错误
pyodbc.programmingerror :('SQL包含1个参数标记,但 提供了1000个参数','hy000')
有什么办法可以这样做,因此浮点值不会单独处理或解决此问题?我认为也许我应该使用','.join
语句将其作为字符串?考虑到我不擅长解释python,如果我有一些错误,请纠正我。谢谢。
尝试在一个查询中插入多个表行时,您需要为每行提供一个值列表。
例如,以下查询将插入两个行:
INSERT INTO Table (ColumnOne) VALUES (1.0), (2.0);
因此,您的Python代码需要准备查询的正确VALUES
部分:
for row in rows:
values = ", ".join(("(?)",) * len(row))
cursor.execute(f"INSERT INTO Table (ColumnOne) VALUES {values}", row)