Erro INDICE DE COLUNA INVÁLIDO na recuperação de valores de uma procedure com parâmetros OUT

0 respostas
evj

Pessoal,

Criei um CallableStatement para chamar uma procedure que retorna dois parâmetros tipo OUT, mas na hora de recuperar esses parâmetros ocorreu o erro: INDICE DE COLUNA INVÁLIDO. Não entendi este erro porque executo a procedure através do método executeQuery() para poder pegar os dados no ResultSet e minha procedure retorna dois parâmetros então para recuperar estou usando o método getString(indexColumn) informando como índices as colunas 1 e 2. Se alguém puder ajudar, vejam o código abaixo, o erro esta ocorrendo nas linhas 11 e 12. Chamada da procedure:
//CHAMADA DA PROCEDURE QUE BUSCA O NOME DO CLIENTE E A DESCRIÇÃO DA MÍDIA
			CallableStatement cstmt;
			try {
				cstmt = getConnection().prepareCall("{CALL PR_BUSCARCLIENTEMIDIA(" + idClientep + ", " + idMidiap + ", " + "?, ?)}");
				cstmt.setString(1, null);
				cstmt.setString(2, null);
				cstmt.registerOutParameter(1, Types.VARCHAR);
				cstmt.registerOutParameter(2, Types.VARCHAR);
				ResultSet rsRetorno = null;
				rsRetorno = cstmt.executeQuery();
				nomeCliente = rsRetorno.getString(1);
				descricaoMidia = rsRetorno.getString(2);	
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
A procedure criada no oracle 10g:
CREATE OR REPLACE PROCEDURE PR_BUSCARCLIENTEMIDIA(P_IDCLIENTE IN CLIENTELOCADORA.IDCLIENTE%TYPE, P_IDMIDIA IN MIDIALOCADORA.IDMIDIA%TYPE, R_NOMECLIENTE OUT CLIENTELOCADORA.NOMECLIENTE%TYPE, R_DESCRICAOMIDIA OUT MIDIALOCADORA.DESCRICAOMIDIA%TYPE)
IS
  BEGIN
       SELECT NOMECLIENTE INTO R_NOMECLIENTE 
       FROM CLIENTELOCADORA
       WHERE IDCLIENTE = P_IDCLIENTE;
  
       SELECT DESCRICAOMIDIA INTO R_DESCRICAOMIDIA
       FROM MIDIALOCADORA
       WHERE IDMIDIA = P_IDMIDIA;
  END;

Criado 14 de fevereiro de 2010
Respostas 0
Participantes 1