|
![]() | 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.
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 INSENSITIVE 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
![]() | P°φkaz REPEAT | ![]() | ╪φdφcφ p°φkazy | P°φkaz FOR | ![]() |