Comando sql que funciona no postgresql mas no java naum

3 respostas
gutorocher
String sql = "SELECT  c.descricao as carro, u.nome as usuario ,v.data_venda,"
		+" v.valor_total, v.condicao_pagamento, v.codigo"
		+" from  usuario u ,venda v, carro c" 
		+"WHERE  v.carro = c.codigo and v.usuario = u.codigo and v.valor_total like '"
		+valorTotal
		+"%'order by v.codigo asc";

e ocorre este erro quando coloco para rodar

org.postgresql.util.PSQLException ERROR:syntax de error at  or near "v"
[size=18][/size]

3 Respostas

sergiotaborda
gutorocher:
String sql = "SELECT  c.descricao as carro, u.nome as usuario ,v.data_venda,"
		+" v.valor_total, v.condicao_pagamento, v.codigo"
		+" from  usuario u ,venda v, carro c" 
		+"WHERE  v.carro = c.codigo and v.usuario = u.codigo and v.valor_total like '"
		+valorTotal
		+"%'order by v.codigo asc";

e ocorre este erro quando coloco para rodar

org.postgresql.util.PSQLException ERROR:syntax de error at  or near "v"
[size=18][/size]

Cuidado com os espaços e a concatenação de strings. Falta um espaço depois de carro c e antes de WHERE

Não use + para concatenar , faça assim :

String sql = (new StringBuilder("SELECT"))
    .append(" c.descricao as carro, u.nome as usuario ,v.data_venda,")
    .append(" v.valor_total, v.condicao_pagamento, v.codigo ")
    .append(" from  usuario u ,venda v, carro c ") 
    .append(" WHERE  v.carro = c.codigo and v.usuario = u.codigo and v.valor_total like '")
    .append(valorTotal)
    .append("%' order by v.codigo asc")
    .toString();
hover

Uma outra sugestão seria utilizar preparedStatement, daí vc não precisaria concatenar os parametros na string e sim substitui-los por metodos.

Da uma olhada nesse artigo

Seu código fica mais limpo, legível e seguro :wink:

gutorocher

obrigado pela dica que ajudou-me muito....

Criado 22 de setembro de 2007
Ultima resposta 23 de set. de 2007
Respostas 3
Participantes 3