Bonjour à tous,
étant débutant en PL SQL, je me heurte à un probleme avec les curseurs. J'ai ma fonction qui est de la forme suivante :
Je souhaite faire un appel à cette fonction via JDBC et lorsque je récupère le curseur renvoyé par la fonction, mais j'obtiens une erreur : Curseur Ref non valide.FUNCTION GET_PROFILS(annee VARCHAR2, lang VARCHAR2)
RETURN SYS_REFCURSOR
IS
l_cursor SYS_REFCURSOR;
req VARCHAR2(32767);
index_record t_dossier;
begin
req := ' select
...
d.taux
....
union
select
...,
d.taux,
... ';
OPEN l_cursor FOR req;
LOOP
FETCH l_cursor INTO index_record;
EXIT WHEN l_cursor%NOTFOUND;
index_record.taux := ... (calcul du taux)
END LOOP;
END;
D’après un collègue, le pointeur du curseur étant arrivé à la fin lors des fetch, il ne peut plus être parcouru en java, est ce vrai ?
Si oui, cela veut il dire qu'on ne peut renvoyer un curseur qu on vient de parcourir ? Puisqu' apparemment, il n'existe pas de méthode pour reset un curseur.
J'ai bien essayé de contourné le problème en faisant le calcul du taux directement dans le select, mais le client ne veux pas de cette méthode.
Merci pour votre aide.
Partager