Bonjour à tous

J'utilise un curseur pour effecture des Delete sur une table de la manière 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;
Tel quel, j'ai l'erreur suivante :
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:
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