1

私はOracleデータベースとJythonを使用しています。

データベースからデータを取得しても問題ありません。

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

これは、1列のデータを取得する場合に正常に機能します。

ループして次のようなリストをスローしたいとします。

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列をプルしたい場合があり、さまざまなクエリを外部ファイルに保存したいためです。

私の言いたいことをご理解いただければ幸いです。そうでなければ、私はできる限りそれを言い換えようとします。

乾杯

アーサー

4

1 に答える 1

3

次のように、すべての列を単一の文字列としてクエリに単純に置き換えることができます。

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

ところで、これは SQL インジェクションから保護されていないため、列、テーブル、および ID の入力はプログラムによって生成またはサニタイズされていると想定しています。

于 2009-01-14T15:19:30.290 に答える