Я использую cx_Oracle для запроса моей базы данных с Python.У меня есть запрос, который возвращает несколько результатов.В cx_Oracle с помощью команды .fetchall () для запроса, который возвращает несколько результатов, каждая строка помещается в кортеж, а затем составляет список кортежей (1 для каждой возвращаемой строки).После получения результатов моего запроса он форматируется следующим образом:
[('R100',), ('R200',)]
Теперь я хочу использовать эти результаты в другом запросе.Следующий запрос выглядит следующим образом:
base_query = "select MODEL from USER.TABLE where SERIES in :series"
, где :series
- маркер специального параметра, который можно заменить при выполнении запроса следующим образом:
cursor.execute(base_query, series=[('R100',), ('R200',)])
Когда я пытаюсь установить ряд в свой список кортежей, я получаю эту ошибку:
cx_Oracle.NotSupportedError: element 0 value is unsupported
Я понимаю, что это, вероятно, проблема синтаксиса, так как вНеобработанный SQL, что я пытаюсь сделать, это, вероятно, создать запрос, который будет выглядеть следующим образом:
base_query = "select MODEL from USER.TABLE where SERIES in [('R100',), ('R200',)]"
, когда я действительно хочу это:
base_query = "select MODEL from USER.TABLE where SERIES in ('R100','R200')
У меня возникают проблемы с тем, чтобы разобранный необработанный запрос выглядел как второй пример, хотя я не уверен в том, как интерпретируются типы данных Python (я предполагаю, что мой 1-й пример даже не является правильной интерпретацией того, чтонеобработанный SQL выглядит так:
ОБНОВЛЕНИЕ: поэтому я думаю, что вы должны быть в состоянии сделать это, используя: cursor.executemany(base_query, [('R100',), ('R200',)])
Но я получаю ошибку: cx_Oracle.DatabaseError: DPI-1013: not supported
Я на cx_oracle Ver 7.0.0 пытаюсь выяснить какая версия моей БД сейчас