Jython,动态查询多个列

时间:2009-01-14 14:49:41

标签: python oracle10g jython

我正在使用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列,并且我想在外部文件中存储不同的查询。

我希望你理解我的意思。如果不是,我会尽力重新说出来。

干杯

亚瑟

1 个答案:

答案 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输入是程序生成或消毒的。