FirebirdSQL logo

Exemples LEAVE

Example 1. Utilisation de l’Instruction LEAVE

Dans cet exemple, la boucle est quittée lorsqu’une erreur d’insertion se produit dans la table NUMBERS. Le code continuera son exécution à partir de l’instruction C = 0.

...
WHILE (B < 10) DO
BEGIN
    INSERT INTO NUMBERS(B)
    VALUES (:B);
    B = B + 1;
    WHEN ANY DO
    BEGIN
        EXECUTE PROCEDURE LOG_ERROR (
             CURRENT_TIMESTAMP,
             'ERROR IN B LOOP');
        LEAVE;
    END
END
C = 0;
...
Example 2. Utilisation de l’Instruction LEAVE avec la balise

Dans cet exemple, l’Instruction LEAVE LOOPA termine la boucle extérieure et LEAVE LOOPB termine la boucle intérieure.

Remarque : Un simple Instruction LEAVE serait également suffisant pour mettre fin à la boucle interne.

...
STMT1 = 'SELECT NAME FROM FARMS';
LOOPA:
FOR EXECUTE STATEMENT :STMT1
INTO :FARM DO
BEGIN
  STMT2 = 'SELECT NAME ' || 'FROM ANIMALS WHERE FARM = ''';
  LOOPB:
  FOR EXECUTE STATEMENT :STMT2 || :FARM || ''''
  INTO :ANIMAL DO
  BEGIN
    IF (ANIMAL = 'FLUFFY') THEN
      LEAVE LOOPB;
    ELSE IF (ANIMAL = FARM) THEN
      LEAVE LOOPA;
    ELSE
      SUSPEND;
  END
END
...
Voir aussi :

BREAK, EXIT, CONTINUE.

CONTINUE

Destination

Un départ précoce pour une nouvelle itération du cycle.

Disponible en

PSQL

Syntaxe
[label:]
<loop_stmt>
BEGIN
  ...
  CONTINUE [label];
  ...
END

<loop_stmt> ::=
    FOR <select_stmt> INTO <var_list>  DO
  | FOR EXECUTE STATEMENT ... INTO <var_list> DO
  | WHILE (<condition>) DO
Table 1. Paramètres de l’instruction CONTINUE
Paramètre Description

label

Étiquette.

select_stmt

Instruction SELECT.

condition

Une condition logique renvoyant VRAI, FAUX ou INCONNU.

L’instruction CONTINUE saute le reste du bloc de la boucle courante et démarre l’itération suivante de la boucle courante WHILE ou FOR. En utilisant le paramètre optionnel label, CONTINUE peut aussi démarrer l’itération suivante pour une boucle externe, c’est-à-dire la boucle marquée avec label.