Talvez isso resolva....
 
 

Alberto Yano
Analista / Desenvolvedor Pleno
Gerência Geral de Informação – GGINF
Agência Nacional de Vigilância Sanitária – ANVISA
 
Brazilian National Agency for Health Surveillance
Fone/Phone: 55-61-448 1218 Fax: 55-61-448 1362
http://www.anvisa.gov.br

 

Atenciosamente,

-----Mensagem original-----
De: Rafael Esdras [mailto:[EMAIL PROTECTED]]
Enviada em: segunda-feira, 18 de março de 2002 15:54
Para: java-list
Assunto: [java-list] (URGENTE) Recuperando valores de um select via procedure.

    Pessoal,
 
    Tenho uma procedure que realiza um select fazendo em seguida o tratamento do mesmo e retornando o resultado encontrado por meio de um loop com o comando ORACLE dbms_output.put_line (ex1).
ex1:    OPEN c_Permissoes;
          LOOP
             FETCH c_Permissoes INTO r_cursor;
             EXIT c_Permissoes WHEN %NOTFOUND;
         
             dbms_output.put_line(rpad(v_id_modulo,11)     || ' ' ||
                                             rpad(v_no_modulo,61)     || ' ' ||
                                             rpad(v_id_form,11)       || ' ' ||
                                             rpad(v_no_form,50)       || ' ' ||
                                             rpad(v_no_form_resum,20) || ' ' ||
                                             rpad(v _id_item,11)       || ' ' || 
                                             rpad(v_id_new,2)         || ' ' ||
                                             rpad(v_id_modify,2)      || ' ' ||
                                             rpad(v_id_delete,2)      || ' ' ||
                                             rpad(v_id_query,2)       || ' ' ||
                                            rpad(v_id_execute,2) );
         
          END LOOP;
          CLOSE c_Permissoes;
 
    Tentei utilizar o CallableStatement para recuperar o resultado (ex2) mas não funcionou.
ex2:  CallableStatement proce =  conn.prepareCall("{call <procedure>}");
         ResultSet rs = proce.executeQuery();
         if(!rs.next()){
              System.out.println("Vazio");
         }else{
              System.out.println("cheio");
         }
 
    Tentei utilizar o OracleCallableStatement (ex3) aí retornou o erro 'Recurso não suportado'
ex3: OracleCallableStatement cstmt = (OracleCallableStatement)conn.prepareCall("{call <procedure>}");
        int elemMaxLen = 250;
        int maxLen = 100;
        int elemSqlType = Types.VARCHAR;
        cstmt.registerIndexTableOutParameter(1, maxLen, elemSqlType, elemMaxLen);
        System.out.println("registerIndexTableOutParameterzou!!");
        cstmt.execute();
        String[] values = (String[])cstmt.getPlsqlIndexTable(1);
        for(int i=0; i<values.length; i++){
          System.out.println(values);
        }

    Será que algum de vocês já passou por uma situação deste tipo para me ajudar?
    Ou será que algum de vocês tem idéia de como faço para alcançar o objetivo?
    Desde já agradeço a atenção.
    Espero que alguém possa me ajudar.
 
 
====================
Um abraço...
Rafael Esdras
"Começe fazendo o necessário,
depois o que é possível e, de repente,
você estará fazendo o impossível."

Responder a