602SQL-Úplná dokumentace Index  

Příkaz LEAVE (SQL)

příkaz_LEAVE ::= LEAVE návěští;

Příkaz LEAVE způsobí ukončení provádění příkazů ve složeném příkazu, příkazu LOOP, REPEAT, WHILE nebo FOR a pokračování příkazem na prvním řádku za návěštím.

Návěští musí být shodné s návěštím některého příkazu, v němž je příkaz LEAVE obsažen. Je-li příkaz LEAVE použit k ukončení složeného příkazu tvořícího tělo procedury, je možné jak návěští použít jméno procedury.

Jako návěští může být použito i návěští z procedury volající proceduru obsahující příkaz LEAVE. Není-li žádné návěští nalezeno, procedura bez chyby skončí.


Příklad použití:

Je třeba projít záznamy kurzoru; pro firmy z Prahy nedělat nic (ukončit tento průchod cyklu), při výskytu hodnoty NULL ukončit cyklus. Důležité je umístění návěští - ukončí se ten příkaz, u něhož je volané návěští.

PROCEDURE `LEAVE_POKUS`();
BEGIN

  FOR_cyklus: FOR radek AS c CURSOR FOR
   SELECT * FROM Firmy
  DO 
   tento_zaznam: BEGIN
    ... 
    CALL Log_write('před '||radek.adresa);
    IF radek.adresa LIKE 'Praha%' THEN LEAVE tento_zaznam; END IF;
    IF radek.adresa IS NULL THEN LEAVE FOR_cyklus; END IF;
    CALL Log_write('po '||radek.adresa);    
    ... 
  END;
  END FOR;

  CALL Log_write('...po FOR cyklu...');
END

Vyskočení z procedury

PROCEDURE LEAVE_POKUS2();
BEGIN
...
  IF ... THEN LAEVE LEAVE_POKUS2; END IF;
...
END