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. Информация, которую я предоставил выше, находится в разделе "Связать шаблоны переменных" (прямая ссылка, по-видимому, недоступна)

Другие вопросы по тегам