cx_Oracle - "Ожидается None или строка"
Я на следующей версии cx_Oracle
>>> cx_Oracle.version
'5.0.3'
Я получаю это исключение при выполнении запроса
"Не ожидая ни строки, ни строки"
Запрос выполняется таким образом
cursor.execute("SELECT * FROM APP_STORE WHERE STORE=:STORE %s" %(order_clause),{'STORE':STORE})
Что может быть причиной? Подобные запросы, выполненные ранее в потоке, работают нормально, но этот - нет.
Ценю некоторые рекомендации по этому вопросу.
1 ответ
Вы неправильно строите свой курсор. Так как вы передаете словарь, вы сначала подготовите свой запрос:
cursor.prepare("SELECT * FROM APP_STORE WHERE STORE=:STORE %s" %(order_clause))
Затем вы выполняете его и проходите None
в качестве первого параметра.
results = cursor.execute(None, {'STORE':STORE})
Если вы хотите изменить STORE
и снова запустите запрос, все, что вам нужно сделать сейчас, это изменить словарь и снова запустить execute
заявление. prepare
И снова это не нужно.
Дополнительную информацию можно найти в документации по рекомендациям Oracle+Python Querying. Информация, которую я предоставил выше, находится в разделе "Связать шаблоны переменных" (прямая ссылка, по-видимому, недоступна)