Bonjour à tous
J'utilise un curseur pour effecture des Delete sur une table de la manière suivante :
Tel quel, j'ai l'erreur suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 DECLARE CURSOR cur_regleepar IS select RP.* from regleepar RP, facture F where RP.numfac=F.numfac and F.numlot IN (SELECT numlotemi FROM emisorg_tmp) FOR UPDATE NOWAIT; BEGIN FOR cur_reg IN cur_regleepar LOOP DELETE regleepar WHERE CURRENT OF cur_regleepar; END LOOP; END;Par contre, si je retire le NOWAIT de la clause FOR UPDATE, je n'ai pas d'erreur et tout fonctionne. Je n'ai pas trouvé d'explication à ce comportement, ni dans mes bouquins ni dans la doc oracle.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 PLS-00404: cursor 'CUR_REGLEEPAR' must be declared with FOR UPDATE to use with CURRENT OF ORA-06550: line 11, column 5:
Pour info : oracle 8.0.5
Phig
Partager