Java com Oracle

2 respostas
S

Boa noite pessoal,

Estou desenvolvendo um sistema e estou usando o oracle 10g. No oracle estou usando a sequence “teste” para o campo codigo.
No java estou passando da seguinte forma.

String sql = "insert into cidade (codigo, nome, uf) values('" + "teste.nextval" + "','" + txtNome.getText() + "','" + cbUF.getSelectedItem()+"')";

Quando tento gravar recebo uma informação de valor inválido.
o que ocorre ???

2 Respostas

pablosaraiva

Seguinte meu chapa.

Use PreparedStatement.

PreparedStatement ps = connection.prepareStatement("Insert into cidade (codigo, nome, uf) values (?,?,?)");
ps.setString(1, teste.nextval);
ps.setString(2, txtNome.getText());
ps.setString(3, cbUF.getSelectedItem());
ps.executeUpdate();

Não sei se os seus dados são todos String, caso não sejam utilize o método set apropriado.

Verifique também se o campo código na sua base é auto-incrementado ou se o valor de teste.nextval é um valor válido para este campo em sua tabela.

Boa sorte.

ctdaa

Olá. Você estava concatenando a STRING “teste.nextval” no statement… ao invés do valor de teste.nextval
Em todo caso concordo que é melhor mesmo usar o PreparedStatement como sugerido.
Falou.

Criado 10 de novembro de 2009
Ultima resposta 10 de nov. de 2009
Respostas 2
Participantes 3