602SQL-┌plnß dokumentace Index   Tisk  

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.

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