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