Я хочу написать sql открытый запрос в python. Обычные sql запросы, которые я писал, были такими:
sql_query = select name from emp where id= %s
И я выполнял их так: cursor.execute(sql_query, (id_value,))
И это хорошо работает.
Но, сейчас У меня есть openquery что-то вроде:
sql_query = select * from openquery([LS], 'select name from \"DB\"."view" where \"id\" Like %s')
Если я выполню с: cursor.execute(sql_query, (id_value,))
Я получу сообщение об ошибке:
SQL содержит 0 маркеров параметров, но предоставляется 1 параметр.
Я понимаю, что эта ошибка возникает, поскольку% s задано в одном запросе в кавычках. Но я не могу удалить эти одинарные кавычки, потому что запрос не работает без него на SQL самом сервере.
Я попытался выполнить запрос с:
cursor.execute(sql_query % (id_value))
И это работает. Но я не хочу использовать это, потому что этот формат склонен к внедрению SQL.
Итак, как я могу написать защищенный параметризованный открытый запрос в python.