Équivalent de l'instruction "Continue"
Je suis dans une boucle du type :
Code:
1 2 3
| for Cur in (select * from HIST_CONTENANT) loop
...
end loop; |
Et à l'intérieur de ma boucle, selon le résultat d'une condition if, je souhaiterais passer à l'itération suivante, sans continuer d'exécuter le reste du code contenu dans cette boucle loop.
En gros, l'équivalent de l'instruction continue en Delphi ou C++.
Y a t'il une instruction équivalente en PL/SQL Oracle ?
:hola:
Dans la série "Je reinvente la roue"....
Citation:
Envoyé par
Loyd1974
C'est pas garantie 100% bug free, mais cela devrait ressembler à quelque chose du genre :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| declare
i integer;
MyContinue EXCEPTION;
begin
for Cur in (select * from HIST_CONTENANT) LOOP
BEGIN
IF conditionTrue THEN
RAISE MyContinue;
END IF;
-- Process continues here
-- ...
-- ...
EXCEPTION
WHEN MyContinue THEN
-- Anything that could be done before processing next iteration
NULL;
WHEN OTHERS THEN
RAISE;
END;
end loop;
end; |
En clair, lorsque tu ne veux pas continuer le traitement, tu fais un RAISE exception qui te permet d'aller directement au niveau du bloc EXCEPTION et ainsi ne pas exécuter le code au milieu sans passer par un IF..ENDIF interminable, ni par un GOTO
OU " Comment reinventer le EXIT " !!!!:aie: