Impala ODBC驱动程序的pyodbc参数化插入

2024-06-16 15:09:08 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试使用pyodbc和Cloudera ODBC驱动程序为Impala执行参数化插入查询,但它不起作用。 我正在尝试执行以下查询

   import pyodbc
   insert_query = "insert into table_name(id,name,price) values(?,?,?)"
   cursor.execute(insert_query,1,"Apples","20 dollars")

以下是我收到的错误:

The SQL contains 0 parameter markers but 3 parameters were supplied, 'HY000'

如果我使用Python格式执行查询,如下所示:

query_format = "insert into table_name(id,name,price) values({},\"{}\",\"{}\")".format(1,"Apples","20 dollars")
cursor.execute(query_format)

但是我真的想单独指定参数,因为我想稍后执行cursor.executemany()来执行批插入,使用格式化方法迫使我使用for循环

我没有单独发送值,而是使用了tuple和list。什么都不管用。为什么不将“?”识别为参数标记

Python-3.7.4, Pyodbc-4.0.27, Python-1.7.2, 操作系统-视窗10


Tags: nameidformatexecute参数tablequeryprice