CREATE TABLE estados
(
est_uf character(2) NOT NULL,
est_nome character varying(20) NOT NULL,
est_regiao character varying(3),
CONSTRAINT pk_estados PRIMARY KEY (est_uf)
)
E estou necessitando fazer uma consulta parametrizada da seguinte forma:
select est_uf as sigla, est_nome as nome
from estados
where est_regiao = 'parametro'
ou
where est_regiao like 'parametro'
onde parametro seria a sigla da região do Brasil para a qual eu executar o select acima.
Em suma, pâmetro poderia assumir os seguintes valores :
‘N’ : indicando a pesquisa dos estados da região Norte
’NE’: indicando a pesquisa dos estados da região Nordeste
’CO’ : indicando a pesquisa dos estados da região Centro-Oeste
’SE’ : indicando a pesquisa dos estados da região Sudeste
’S’: indicando a pesquisa dos estados da região Sul
Alguém poderia me ajudar com a sintaxe para se criar uma consulta parametrizada no PostgreSQL.
Pesquisei em vários tutoriais, fóruns, mas a maioria deles falava em cursores, em funções, e eu queria uma coisa bem mais simples, apenas executar a query acima de modo que em tempo de excecução eu possa preencher o valor do parâmetro(que seria comparado com o campo EST_REGIAO) e obter o resultado esperado, qual seja, a Sigla(UF) e o Nome apenas dos estados situados na região cuja sigla foi fornecida como parâmetro em tempo de execução da query.
As formas citadas acima são as que melhors devam resolver seu problema, mas independente da qual você escolher,
lembre-se de verifica se os parâmetros que está sendo passado para efetuar a consulta são válidos, para evitar
que seja executada uma consulta com valores inválidos.
[code]String sql = “SELECT u.nome,u.login,u.senha FROM usuarios u WHERE login=? AND senha=?”;
//nesse caso a (?) indica que eu vou passar um valor. esses valores são passados na ordem! 1 (?) ps.setString(1, valor a ser passado); //e assim por diante
[quote=mario.fts]vc quer fazer isso diretamente no banco ou em java?
se for diretamente no banco, vc vai ter que criar um procedure/function, passar esses parametros e o resultado será obtido.
Se for em java, vc vai ter que usar um preparedstatment, setar os parametros na query e mandar executar.[/quote]
Meu objetivo é montar uma query parametrizada a ser utilizada em um relatório no iReport acessando diretamente uma base PostgreSQL.
Se fosse em Oracle, eu faria algo como :
select est_uf as sigla, est_nome as nome
from estados
where est_regiao = &{parametro}
Eu não preciso de função nem de montar uma String com uma consulta SQL em Java(pelo menos por enquanto).
O que eu necessito é saber a sintaxe correta para re-escrever o trecho
...
where est_regiao = &{parametro}
...
a ser executado em uma base PostgreSQL.
É só isto que preciso em relação a esta consulta parametrizada : re-escrevê-la na sintaxe do PostgreSQL.
Agradece,