|
![]() | Příkaz REPEAT | ![]() | Řídící příkazy | Příkaz FOR | ![]() |
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
![]() | Příkaz REPEAT | ![]() | Řídící příkazy | Příkaz FOR | ![]() |