我正在将数据传递到数据库以查询数据库,但遇到以下错误。
>>> 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)
有人知道是什么导致这个问题吗?
2条答案
按热度按时间k4ymrczo1#
我从我的密码中发现了问题,我在回答我自己的问题。代码应该以这种方式更改,它适合我。我不知道为什么?在我的情况下没有消耗。
n9vozmp42#
上面提供的解决方案将执行
var1
并在没有参数化的情况下发出查询—这很糟糕,会让您面临sql注入。尝试这个调整,只需在
?
参数标记,有关更多信息,请参见此答案: