Utilisation de NOWAIT dans une clause FOR UPDATE
Bonjour à tous
J'utilise un curseur pour effecture des Delete sur une table de la manière suivante :
Code:
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; |
Tel quel, j'ai l'erreur suivante :
Code:
1 2
| PLS-00404: cursor 'CUR_REGLEEPAR' must be declared with FOR UPDATE to use with CURRENT OF
ORA-06550: line 11, column 5: |
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.
Pour info : oracle 8.0.5
Phig