我正在使用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列,并且我想在外部文件中存储不同的查询。
我希望你理解我的意思。如果不是,我会尽力重新说出来。
干杯
亚瑟
答案 0 :(得分:3)
您可以简单地将所有列替换为查询作为单个字符串,如下所示:
columns = ['column1', 'column2', 'column3', 'column4', 'column5']
results = statement.executeQuery("select %s from %s where column_id = '%s'" % (",".join(columns), table, id))
顺便说一句,这不是针对SQL注入的保护,所以我假设列,表和id输入是程序生成或消毒的。