Executar um update no DAO

Galera estou tentando executar um UPDATE e me da o seguinte erro: SQLException: ORA-01008: not all variables bound

ORA-01008 nem todas as variáveis são limitadas

alguém já pegou esse erro ?

abaixo segue meu metodo.

public void updateCliente(ClienteTO clienteTO) throws Exception {

		
		String sql = "update cadcliente set CODIGOCLI =?, NOME =?, ENDERECO =?, RG =?, CPF =?, TELFIXO =?," +
				"CEL=?, BAIRRO =?, datanascimento =?, numero =?, complemento= ?, email =? where CODIGOCLI =?)";
		
		try { 
			PreparedStatement pstm = getConnection().prepareStatement(sql);
			pstm.setString(1, clienteTO.getCodigocli());
			pstm.setString(2, clienteTO.getNome());
			pstm.setString(3, clienteTO.getEndereco());
			pstm.setString(4, clienteTO.getRg());
			pstm.setString(5, clienteTO.getCpf());
			pstm.setString(6, clienteTO.getTelfixo());
			pstm.setString(7, clienteTO.getCel());
			pstm.setString(8, clienteTO.getBairro());
			pstm.setDate(9, clienteTO.getDataNascimentoDate());
			pstm.setString(10, clienteTO.getNumero());
			pstm.setString(11, clienteTO.getComplemento());
			pstm.setString(12, clienteTO.getEmail());
			pstm.executeUpdate();
			pstm.close();
			
		} catch (Exception ex) {
			System.out.println("Erro: " + ex);
			System.err.println("Erro: " + ex);
			throw new Exception(ex);

		}

conta qtas interrogações tem no seu sql e conta qtos parâmetros vc setou… :?

faltou você setar o CODIGOCLI.

[]´s

então acho que esta setado olha só ai

public void updateCliente(ClienteTO clienteTO) throws Exception {

		String sql = "update cadcliente set CODIGOCLI =?, NOME =?, ENDERECO =?, RG =?, CPF =?, TELFIXO =?," +
				"CEL=?, BAIRRO =?, datanascimento =?, numero =?, complemento= ?, email =? where CODIGOCLI)";
		
		try { 
			PreparedStatement pstm = getConnection().prepareStatement(sql);
			pstm.setString(1, clienteTO.getCodigocli());
			pstm.setString(2, clienteTO.getNome());
			pstm.setString(3, clienteTO.getEndereco());
			pstm.setString(4, clienteTO.getRg());
			pstm.setString(5, clienteTO.getCpf());
			pstm.setString(6, clienteTO.getTelfixo());
			pstm.setString(7, clienteTO.getCel());
			pstm.setString(8, clienteTO.getBairro());
			pstm.setDate(9, clienteTO.getDataNascimentoDate());
			pstm.setString(10, clienteTO.getNumero());
			pstm.setString(11, clienteTO.getComplemento());
			pstm.setString(12, clienteTO.getEmail());
			pstm.executeUpdate();
			pstm.close();
			
		} catch (Exception ex) {
			System.out.println("Erro: " + ex);
			System.err.println("Erro: " + ex);
			throw new Exception(ex);

		}

eu tirei a ultima interrogação where CODIGOCLI mai não funcionou

Tente assim:

# public void updateCliente(ClienteTO clienteTO) throws Exception {  
#   
#           
#         String sql = "update cadcliente set CODIGOCLI =?, NOME =?, ENDERECO =?, RG =?, CPF =?, TELFIXO =?," +  
#                 "CEL=?, BAIRRO =?, datanascimento =?, numero =?, complemento= ?, email =? where CODIGOCLI =?)";  
#           
#         try {   
#             PreparedStatement pstm = getConnection().prepareStatement(sql);  
#             pstm.setString(1, clienteTO.getCodigocli());  
#             pstm.setString(2, clienteTO.getNome());  
#             pstm.setString(3, clienteTO.getEndereco());  
#             pstm.setString(4, clienteTO.getRg());  
#             pstm.setString(5, clienteTO.getCpf());  
#             pstm.setString(6, clienteTO.getTelfixo());  
#             pstm.setString(7, clienteTO.getCel());  
#             pstm.setString(8, clienteTO.getBairro());  
#             pstm.setDate(9, clienteTO.getDataNascimentoDate());  
#             pstm.setString(10, clienteTO.getNumero());  
#             pstm.setString(11, clienteTO.getComplemento());  
#             pstm.setString(12, clienteTO.getEmail());  
              [/code]
               [b] pstm.setString(13, clienteTO.getCodigocli());[/b]
              [code]
#             pstm.executeUpdate();  
#             pstm.close();  
#               
#         } catch (Exception ex) {  
#             System.out.println("Erro: " + ex);  
#             System.err.println("Erro: " + ex);  
#             throw new Exception(ex);  
#   
#         }

você tem 13 pontos de interrogação e só 12 parâmetros.
Este é o problema.

[]'s

ta faltando um parametro meu amigo.

Fiz as alterações das interrogações e parametros mais ainda esta dando o erro


public void updateCliente(ClienteTO clienteTO) throws Exception {

		String sql = "update cadcliente set CODIGOCLI =?, NOME =?, ENDERECO =?, RG =?, CPF =?, TELFIXO =?," +
				"CEL=?, BAIRRO =?, datanascimento =?, numero =?, complemento= ?, email =? where CODIGOCLI=?)";
		
		try { 
			PreparedStatement pstm = getConnection().prepareStatement(sql);
			pstm.setString(1, clienteTO.getCodigocli());
			pstm.setString(2, clienteTO.getNome());
			pstm.setString(3, clienteTO.getEndereco());
			pstm.setString(4, clienteTO.getRg());
			pstm.setString(5, clienteTO.getCpf());
			pstm.setString(6, clienteTO.getTelfixo());
			pstm.setString(7, clienteTO.getCel());
			pstm.setString(8, clienteTO.getBairro());
			pstm.setDate(9, clienteTO.getDataNascimentoDate());
			pstm.setString(10, clienteTO.getNumero());
			pstm.setString(11, clienteTO.getComplemento());
			pstm.setString(12, clienteTO.getEmail()); 
			pstm.setString(13, clienteTO.getCodigocli()); 
			pstm.executeUpdate();
			pstm.close();
			
		} catch (Exception ex) {
			System.out.println("Erro: " + ex);
			System.err.println("Erro: " + ex);
			throw new Exception(ex);

		}

Não sei se tem a ver com o erro. Mas você está fazendo:

update cadcliente set CODIGOCLI =? …

e depois:

where CODIGOCLI=?

Não é necessário fazer o set CODIGOCLI =?

Você tem que fazer pstm.executeUpdate(sql);

Galera estava errado isso ai no meu codigo estava fechando um parenteses que não tinha aberto valeu a todos

where CODIGOCLI=?)"; <—