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."