ORA-01008: not all variables bound

Pessoal, boa tarde!

Pesquisei aqui no forum, e até achei algo relacionado mais não tão de acordo com o que eu preciso, por isso abri esse tópico, pois o outros era de 2006.

Estou tentadno executar um procedure, com o método que eu criei abaixo e estou tendo esse erro: ORA-01008: not all variables bound

Alguém pode dar um help no que pode ser, a principio está tudo ok, com a chamada da procedure certo?

public ResultSet setDadosCsl(BigDecimal cnl, String sigla_loc, String uf, BigDecimal solic) throws SQLException{
	   Connection con 			= null;
	   CallableStatement proc 	= null;
	   ResultSet rs 			= null;

	  try  {
	   con = ConnectionFactorySQLOracle.getInstance().getConnection();
	     
	    // logger.info("Vai EXECUTAR A SP: pkg_localidade_aten.pesquisa_localidade");
	     proc = con.prepareCall("{call PKG_LOCALIDADE_ATEN.pesquisa_localidade(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) }");
	     //Entrada
	     proc.setBigDecimal(1, cnl);
	     proc.setString(2, sigla_loc);
	     proc.setString(3, uf);
	     proc.setBigDecimal(4, solic);
	     //Saida
	     proc.registerOutParameter(1, OracleTypes.NUMBER);
	     proc.registerOutParameter(2, OracleTypes.NUMBER);
	     proc.registerOutParameter(3, OracleTypes.VARCHAR);
	     proc.registerOutParameter(4, OracleTypes.VARCHAR);
	     proc.registerOutParameter(5, OracleTypes.VARCHAR);
	     proc.registerOutParameter(6, OracleTypes.VARCHAR);
	     proc.registerOutParameter(7, OracleTypes.VARCHAR);
	     proc.registerOutParameter(8, OracleTypes.VARCHAR);
	     
	     proc.execute();
	     
	     //logger.info("EXECUTOU A SP: pkg_localidade_aten.pesquisa_localidade");
	     //Retrorno um resultSet com os dados
	     rs = (ResultSet) proc.getObject(1);
	        
	  }  finally  {
	     try {
	        proc.close();
	        con.close();
	     }catch (SQLException ex) {
	    	 con.close();
		     logger.info("############################ SQLException ATECSL01 ##############################");
		     logger.info("SQLException : " + ex.getMessage());
			 logger.info("########################## FIM SQLException ATECSL01 ##############################");	 
	     }
	  }
	return rs;
   }

seus outs devem seguir a ordem:

         //Entrada  
         proc.setBigDecimal(1, cnl);  
         proc.setString(2, sigla_loc);  
         proc.setString(3, uf);  
         proc.setBigDecimal(4, solic);  
         //Saida  
         proc.registerOutParameter(5, Types.NUMERIC);  
         proc.registerOutParameter(6, Types.NUMERIC);  
         proc.registerOutParameter(7, Types.VARCHAR);  
         proc.registerOutParameter(8, Types.VARCHAR);  
         proc.registerOutParameter(9, Types.VARCHAR);  
         proc.registerOutParameter(10, Types.VARCHAR);  
         proc.registerOutParameter(11, Types.VARCHAR);  
         proc.registerOutParameter(12, Types.VARCHAR);  

        proc.execute();  
           
         //considerando que o '1' agora é o 5
         rs = (ResultSet) proc.getObject(5);  

Entendi, fiz a alteração!

    public ResultSet setDadosCsl(BigDecimal cnl, String sigla_loc, String uf, BigDecimal solic) throws SQLException{  
           Connection con           = null;  
           CallableStatement proc   = null;  
           ResultSet rs             = null;  
      
          try  {  
           con = ConnectionFactorySQLOracle.getInstance().getConnection();  
               
            // logger.info("Vai EXECUTAR A SP: pkg_localidade_aten.pesquisa_localidade");  
             proc = con.prepareCall("{call PKG_LOCALIDADE_ATEN.pesquisa_localidade(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) }");  
             //Entrada  
             proc.setBigDecimal(1, cnl);  
             proc.setString(2, sigla_loc);  
             proc.setString(3, uf);  
             proc.setBigDecimal(4, solic);  
             //Saida  
             proc.registerOutParameter(5, OracleTypes.NUMBER);  
             proc.registerOutParameter(6, OracleTypes.NUMBER);  
             proc.registerOutParameter(7, OracleTypes.VARCHAR);  
             proc.registerOutParameter(8, OracleTypes.VARCHAR);  
             proc.registerOutParameter(9, OracleTypes.VARCHAR);  
             proc.registerOutParameter(10, OracleTypes.VARCHAR);  
             proc.registerOutParameter(11, OracleTypes.VARCHAR);  
             proc.registerOutParameter(12, OracleTypes.VARCHAR);  
               
             proc.execute();  
               
             //logger.info("EXECUTOU A SP: pkg_localidade_aten.pesquisa_localidade");  
             //Retrorno um resultSet com os dados  
             rs = (ResultSet) proc.getObject(1);  
                  
          }  finally  {  
             try {  
                proc.close();  
                con.close();  
             }catch (SQLException ex) {  
                 con.close();  
                 logger.info("############################ SQLException ATECSL01 ##############################");  
                 logger.info("SQLException : " + ex.getMessage());  
                 logger.info("########################## FIM SQLException ATECSL01 ##############################");       
             }  
          }  
        return rs;  
       }  

O Erro agora é esse ?


Throwable : ORA-06550: line 1, column 7:
PLS-00201: identifier ‘PKG_LOCALIDADE_ATEN.PESQUISA_LOCALIDADE’ must be declared
ORA-06550: line 1, column 7:
PL/SQL: Statement ignored

Quando executa a procedure na mão no PL/SQL, ela roda normalmente trazendo os resultados.

Ou a PKG não existe, ou tá faltando um GRANT pra ela:

Brigado meu amigo, você matou o problema!

Grande abraços!