PYODBC не нравится%, «SQL содержит 2 параметра маркеров, но были указаны 1 параметр».
Поэтому я в настоящее время связываю Python с SQL, чтобы вытащить информацию о клиентах. К сожалению, я получаю некоторые ошибки в отношении SQL. Я пытаюсь использовать LIKE-оператор и групповой символ%, но я продолжаю получать ошибки, потому что Python не нравится%. В результате он делает вид, что переменная между% s не существует. Вот что я имею в виду:
SELECT custnbr, firstname, middleint, lastname FROM lqppcusmst WHERE custnbr = ? AND firstname LIKE ?
Прямо сейчас, я просто проверяю это, поэтому я просто использую номер клиента и имя. Я даю ему значение:
remote_system_account_number = request.DATA['remote_system_account_number'] remote_system_first_name = request.DATA['remote_system_first_name']
Поскольку я пишу это для поиска клиентов в базе данных, есть шанс, что могут быть пустые записи, поэтому у меня это выглядит так:
if remote_system_account_number != '': SQL_where += ' custnbr = ? ' parameters += "remote_system_account_number" if remote_system_first_name != '': SQL_where += ' AND firstname LIKE ? ' parameters += ", %remote_system_first_name%"
Поэтому я думал, что это сработает, но это не так. Когда я выполняю его так:
database_cursor.execute(customer_information_SQLString + SQL_where, parameters)
Я получаю это:
ProgrammingError: ('The SQL contains 2 parameter markers, but 1 parameters were supplied', 'HY000')
Кто-нибудь знает, как с этим справиться?
- Курсор podon pyodbc против курсора базы данных
- Только первый символ строк unicode, записываемых в csv
- Ошибка: команда cl.exe не удалась: нет такого файла или каталога
- Получение имен таблиц и столбцов в PyOdbc
- Схема ошибок pyodbc не существует или у вас нет разрешения
parameters
не должны быть разделены запятыми, она должна быть перечислимой (список или аналогичный) с рядом значений, соответствующих количеству заполнителей в вашем SQL. Например:
parameters = [] if remote_system_account_number != '': SQL_where += ' custnbr = ? ' parameters.append("remote_system_account_number") if remote_system_first_name != '': SQL_where += ' AND firstname LIKE ? ' parameters.append("%remote_system_first_name%")
- Не удается подключиться к Interactive Brokers с помощью python
- Пользовательский шаблон администратора django для приложения
- как подключиться к Vertica с помощью pyodbc
- Проверьте, открыто ли соединение podbc
- аргумент тайм-аута pyodbc.connect игнорируется для вызовов SQL Server
- pyodbc на SQL Server – Как я могу сделать вставку и получить идентификатор строки?
- Как кодировать строки Unicode с помощью pyodbc для сохранения в наборе данных SAS?
- Проблема с соединением Python-Oracle с Pyodbc
- Ошибка соединения podbc при попытке подключения к БД на localhost
- PyODBC Cursor.fetchall () вызывает сбой python (segfault)
- как поймать конкретное сообщение об ошибке pyobbc