我经常遇到错误,似乎在网上找不到解决办法。我目前有一个SQL,它有36列,并且正在使用delete语句,然后每天通过CSV和python程序插入新值。它是一个基本的Insert语句,它利用python循环插入CSV中的所有行。
我刚刚在SQL表和python程序中的insert语句中添加了一个新列(过去我对这个表做过多次这样的操作),但是每当我使用新的insert语句程序时,都会出现以下错误:
pyodbc.ProgrammingError: ('42000', "[42000] [Microsoft][ODBC SQL Server
Driver][SQL Server]Incorrect syntax near '@P26'. (102) (SQLExecDirectW);
[42000] [Microsoft][ODBC SQL Server Driver][SQL Server]Statement(s) could
not be prepared. (8180)")我假设'@P26‘是指某些参数,但是我没有使用任何SQL参数。下面是我的Python / SQL代码片段:
SQL = """insert into example_table( [Column_1],
[Column_2],
[Column_3],
[Column_4],
[Column_5],
[Column_6],
[Column_7],
[Column_8],
[Column_9],
[Column_10],
....
[Column_36],
[New Column]
) values (?,?,?,?,?,?,?,?,?,?,?,?,
?,?,?,?,?,?,?,?,?,?,?,?,
?,?,?,?,?,?,?,?,?,?,?,?,?)"""
cursor2.execute("delete example_table")
for row in csv_data:
cursor2.execute(SQL, row)非常感谢你的帮助,我完全被困住了。抱歉密码里有奇怪的凹痕。(注意:我知道语法是正确的,因为当我删除新列和参数标记并重新运行时,语法是正确的)。
发布于 2017-09-27 15:49:19
这是一个语法问题,请检查您的"?“26值。这种情况发生在我身上,我有这样的语法:
……?,??)
这是我的第23次值,错误告诉我@P23。资料来源: exp.
https://stackoverflow.com/questions/43787901
复制相似问题