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

1

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

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

Приветствия

Артур

Теги:
jython
oracle10g

1 ответ

3
Лучший ответ

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

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

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

  • 0
    Ура, это прекрасно работает!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню