Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python中参数查询的语法(pyodbc)_Python_Sql Server_Parameters_Pyodbc - Fatal编程技术网

Python中参数查询的语法(pyodbc)

Python中参数查询的语法(pyodbc),python,sql-server,parameters,pyodbc,Python,Sql Server,Parameters,Pyodbc,我正在尝试将某些处理的结果写入SQLServer表。 我的结果存储在列表列表中,列表中的每个项目都是一个列表。我正在使用参数(6个参数),我得到以下错误: cnxn.execute(sqlStatement,(项目[0],项目[1],项目[2],项目[3],项目[4],项目[5])) pyodbc.ProgrammingError:(“SQL包含0个参数标记,但提供了6个参数”,“HY000”) 这是我的密码 sqlStatement = "INSERT INTO CEA_CR (`Sessio

我正在尝试将某些处理的结果写入SQLServer表。 我的结果存储在列表列表中,列表中的每个项目都是一个列表。我正在使用参数(6个参数),我得到以下错误:

cnxn.execute(sqlStatement,(项目[0],项目[1],项目[2],项目[3],项目[4],项目[5])) pyodbc.ProgrammingError:(“SQL包含0个参数标记,但提供了6个参数”,“HY000”)

这是我的密码

sqlStatement = "INSERT INTO CEA_CR (`SessionID`, `Session.Call_TYPE_Assigned`, `Session.Did_Call_Type_happen_on_this_call`, `Session.Was_there_a_system_or_Rep_generated_Memo_that_matches_with_Call_Type` , 'cycle' , 'version')  VALUES (%s, %s, %s, %s ,%s ,%s)"

for item in result:
     wr.writerow(item)
     cnxn.execute(sqlStatement, (item[0],item[1],item[2],item[3],item[4],item[5]))
     cnxn.commit()

有人知道我执行失败的原因吗?

您应该使用?作为参数标记,我相信

您的sql可能如下所示:

sqlStatement = "INSERT INTO CEA_CR (SessionID, Session.Call_TYPE_Assigned, Session.Did_Call_Type_happen_on_this_call, Session.Was_there_a_system_or_Rep_generated_Memo_that_matches_with_Call_Type, cycle, version) VALUES (?, ?, ?, ?, ?, ?)"

我不知道您使用的是什么sql驱动程序,但是参数替换是否应该是
而不是
%s
?我将我的声明更正为:sqlStatement=“插入CEA\u CR(
会话ID
会话。调用类型分配的
会话。调用类型是否发生在该调用上(
会话)。是否存在与调用类型匹配的系统或生成的备忘录?、“循环”、“版本”值(?,,,?)”但现在的错误消息是:“靠近'`'的语法不正确”。在我看来,Nonnib回答了您最初的问题。也许你应该接受这个答案并问一个新的?此外,如果您发布完整但最少的代码示例,则更容易给出完全正确的答案。在这种情况下,通常使用的方法是尝试并简化所有内容,直到您找出问题所在。把东西移走,直到它起作用。在这一点上,您将获得更多关于问题具体位置的信息。为什么在上面修改的SQL中,cycle和version仍然有单引号围绕着它们?