Привязка текстовых параметров SQLAlchemy дает '?' - PullRequest
0 голосов
/ 08 июля 2019

Я использую ODBC Driver 17 для SQL Server

У меня есть это:

q = text('select top 10 * from :x')

conn.execute(q, x="mytable")

, который не возвращается:

sqlalchemy.exc.ProgrammingError: (pyodbc.ProgrammingError) ('42000', '[42000] [Microsoft][ODBC Driver 17 for SQL Server][SQL Server]Must declare the table variable "@P1". (1087) (SQLExecDirectW)')
[SQL: select top 10 * from ?]
[parameters: ('mytable',)]

Запуск q = test('select top 10 * from mytable') работает, однако.

Я в растерянности, как я пытался bindparams.

1 Ответ

0 голосов
/ 08 июля 2019

Комментарий Мартиджина правильный. Параметры привязки работают только для данных.

q = text('select top 10 * from :x')

conn.execute(q, x="mytable")

недействительно.

Но это,

q = text('select :x from mytable')

conn.execute(q, x="thing1")

работает.

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