Jython, динамически запрашивает несколько столбцов

StackOverflow https://stackoverflow.com/questions/443224

  •  22-07-2019
  •  | 
  •  

Вопрос

Я работаю с базой данных Oracle и Jython.

Я без проблем могу извлечь данные из базы данных.

results = statement.executeQuery("select %s from %s where column_id = '%s'", % (column, table, id))

Это прекрасно работает, если я хочу извлечь один столбец данных.

Допустим, я хотел, чтобы цикл создавал список, подобный этому:

columns = ['column1', 'column2', 'column3', 'column4', 'column5']

Таким образом, запрос в конечном итоге выглядел следующим образом:

results = statement.executeQuery("select %s, %s, %s, %s, %s from %s where column_id = '%s'", % (column1, column2, column3, column4, column5, table, id))

Как я мог это сделать?

Причина, по которой я хочу достичь этого, заключается в том, что я могу захотеть извлечь 6 или 7 столбцов, и я хотел бы сохранить разные запросы во внешнем файле.

Я надеюсь, вы понимаете, что я имею в виду.Если нет, я постараюсь перефразировать это как можно лучше.

Ваше здоровье

Артур

Это было полезно?

Решение

Вы могли бы просто подставить все столбцы в свой запрос в виде одной строки, вот так:

columns = ['column1', 'column2', 'column3', 'column4', 'column5']
results = statement.executeQuery("select %s from %s where column_id = '%s'" % (",".join(columns), table, id))

Кстати, это не защищает от внедрения SQL, поэтому я предполагаю, что входные данные столбцов, таблицы и идентификаторов сгенерированы программой или очищены.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top