Python - PyODBC - 带循环的多个查询

Python - PyODBC - multiple queries with loop

我在 Python 中通过 pyODBC 向 SQL Server 2012 发送多个查询时遇到问题。 我有一个带有查询的 DataFrame,我想用它来查询数据库。像这样:

cnxn = pyodbc.connect('DRIVER={SQL Server};SERVER=mySERVER;DATABASE=myDB;UID=myUID;PWD=myPSWD')
cursor = cnxn.cursor()
cursor2 = cnxn.cursor()

for i in range(len(myDataFrame.Column_w_Queries)):
    query = '"' + myDataFrame.Column_w_Queries[i] + '"'
    cursor.execute(query)
    one = cursor.fetchone()
    print(one)

query 在这个例子中是 "select * from [DB].[schema].[table1]"(包括引号)。

问题是,当我 运行 cursor.execute(query) 我得到以下错误:

ProgrammingError: ('42000', "[42000] [Microsoft][ODBC SQL Server Driver][SQL Server]Could not find stored procedure 'select * from [DB].[schema].[table1]'. (2812) (SQLExecDirectW)")

我做错了什么?

你必须去掉周围的双引号。例如,打开 SQL Server Management Studio,然后尝试 运行:

"select * from [DB].[schema].[table1]"

你会得到错误:

Msg 2812, Level 16, State 62, Line 1
Could not find stored procedure 'select * from [DB].[schema].[table1]'.

现在试试:

select * from [DB].[schema].[table1]

...它应该可以工作。祝你好运!