Доступ к хранимой процедуре через sqlalchemy - PullRequest
0 голосов
/ 25 апреля 2019

Я хочу получить доступ к хранимой процедуре 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)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...