【发布时间】:2018-01-11 02:06:33
【问题描述】:
我正在将数据传递到数据库以查询数据库,但我遇到了以下错误。
>>> my_cursor.execute(my_query, var1)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
pyodbc.ProgrammingError: ('The SQL contains 0 parameter markers, but 1 parameters were supplied', 'HY000')
我的代码是
import pyodbc
import pandas as pd
var1 = 'UCSB'
my_connection = pyodbc.connect('DSN=MapR-64-Hive', autocommit=True)
my_cursor = my_connection.cursor()
my_query = """
select * from polaris_datasets.snmaster where parent_pid rlike '%s' and created_date >= "2017-12-01 00:00:00"
"""
my_cursor.execute(my_query, var1)
有谁知道会导致这个问题的原因吗?
【问题讨论】:
-
是的。
%s不是参数标记,因此您的 SQL 包含零个参数标记,但您在var1中传递了一个。阅读错误消息中的文字、您发布的代码以及此处的数十个现有问题中的任何一个有类似的错误消息,其中一些在相关列表中====>>>>。 -
?是参数标记,而不是%s。 -
事实上,我已经检查了多个发布的类似问题,他们建议使用?作为参数标记。我也尝试过,但失败并返回错误消息 "pyodbc.Error:(.. Syntax or semantic analysis error ...Encountered:Unexpected character\nExpected:" 。我想知道我是否犯了任何小错误我的代码