Python - PyODBC - 循环

时间:2015-06-01 11:55:45

标签: python sql-server python-3.x pyodbc

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

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驱动程序] [SQL Server]找不到存储过程'从[DB]中选择* 。[schema]。[table1]'。(2812)(SQLExecDirectW)")

我做错了什么?

1 个答案:

答案 0 :(得分:1)

你必须摆脱周围的双引号。例如,打开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]

......它应该有效。祝你好运!