Я хочу получить доступ к хранимой процедуре SQL-сервера через python, используя sqlalchemy. Я хочу назначить таблицу, запрашиваемую для фрейма данных.
Я создал сценарий на SQL, и он возвращает правильную таблицу. Я попытался вставить полный сценарий в виде строки запроса, однако это возвращает ноль результатов. Я пробовал простые запросы "select * from x", и они работают.
python
connection = sqlalchemy.create_engine(f"mssql+pyodbc://{usr}:{password}@DUMMYDATABASE?driver=SQL+Server+Native+Client+11.0")
query = """USE [DATABASE_REPORTING]
GO
EXEC [dbo].[PARKING_ALERT];"""
df = pd.read_sql(query, connection)
Я ожидаю, что на выходе будет фрейм данных с приблизительно 200 000 строк, но вместо этого получит следующую ошибку
ProgrammingError: (pyodbc.ProgrammingError) ('42000', "[42000]
[Microsoft] [Собственный клиент SQL Server 11.0] [SQL Server] Неверный синтаксис
рядом с «GO». (102) (SQLExecDirectW) ") [SQL: USE [DATABASE_REPORTING]
GO
EXEC [dbo]. [PARKING_ALERT];] (Фон этой ошибки: http://sqlalche.me/e/f405)