Bonjour à toutes et à tous,
J'ai un programme PL/SQL dans lequel au niveau d'une boucle l'instruction suivante est appelée :
SELECT MA_SEQUENCE.NEXTVAL INTO nouvelleCle FROM DUAL;
Au bout d'une centaine de passage dans la boucle, l'erreur suivante apparaît :
ora-01000: maximum open cursors exceeded
J'ai pu répéter cette erreur en créant ma propre séquence et en jouant l'instruction avec NEXTVAL sur cette séquence plusieurs fois :
CREATE SEQUENCE SEQ_TEST_POUR_VOIR MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 2006680770 NOCACHE NOORDER NOCYCLE ;
SELECT SEQ_TEST_POUR_VOIR.NEXTVAL FROM DUAL; => répétée une centaine de fois
Et là aussi, j'obtiens cette erreur :
ora-01000: maximum open cursors exceeded
Je voudrais :
- comprendre ce qui se passe (ouverture à chaque fois d'un curseur "implicite" ? ou autre chose ?)
- comment remédier dans le code à un tel problème
Je ne voudrais pas augmenter le nombre de curseurs ouvert autorisé
mais changer le code de cette procédure PL/SQL afin que cette erreur ne survienne plus.
D'avance Merci à vous tous et bonne journée,
Thomas
Partager