Pergunta

Eu estou trabalhando com um banco de dados Oracle e Jython.

posso obter dados retirados do banco de dados não há problema.

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

Esta multa funciona se eu quero puxar uma coluna de dados.

Digamos que eu queria laço jogou uma lista como esta:

columns = ['column1', 'column2', 'column3', 'column4', 'column5']

Assim, a consulta acabou parecendo assim:

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

Como eu poderia fazer isso?

A razão de eu querer achive isso é porque eu pode querer puxar 6 ou 7 colunas e eu gostaria de armazenar consultas diferentes em um arquivo externo.

Espero que você entenda o que quero dizer. Se não vou tentar palavra re-lo da melhor forma que posso.

Felicidades

Arthur

Foi útil?

Solução

Você poderia simplesmente substituir todas as colunas em sua consulta como uma única corda, como esta:

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

A propósito, este é não proteger contra injeção de SQL, então eu estou supondo que as colunas, tabelas e entradas de identificação são ou higienizado gerado pelo programa.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top