FirebirdSQL logo

Примеры LEAVE

Example 1. Использование оператора LEAVE

В этом примере выход из цикла произойдёт при возникновении ошибки вставки в таблицу NUMBERS.Код продолжит своё выполнение с оператора 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. Использование оператора LEAVE с меткой

В этом примере оператор LEAVE LOOPA завершает внешний цикл, а LEAVE LOOPB — внутренний.

Обратите внимание: простого оператора LEAVE также было бы достаточно, чтобы завершить внутренний цикл.

...
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
...
См. также:

BREAK, EXIT, CONTINUE.

CONTINUE

Назначение

Досрочное начало новой итерации цикла.

Доступно в

PSQL

Синтаксис
[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. Параметры оператора CONTINUE
Параметр Описание

label

Метка.

select_stmt

Оператор SELECT.

condition

Логическое условие возвращающее TRUE, FALSE или UNKNOWN.

Оператор CONTINUE пропускает оставшуюся часть текущего блока цикла и запускает следующую итерацию текущего цикла WHILE или FOR.С использованием необязательного параметра label, CONTINUE также может начинать следующую итерацию для внешнего цикла, то есть цикла, помеченного меткой label.

Примеры CONTINUE

Example 1. Использование оператора CONTINUE
FOR
  SELECT A, D FROM ATABLE INTO :achar, :ddate
DO BEGIN
  IF (ddate < current_data - 30) THEN
    CONTINUE;
  ELSE
    /* do stuff */
  ...
END
См. также:

LEAVE, BREAK.

EXIT

Назначение

Завершение работы процедуры, функции или триггера.

Доступно в

PSQL

Синтаксис
EXIT;

Оператор EXIT, вызванный из любой точки выполняющегося PSQL модуля, переходит на последний оператор END, таким образом завершая выполнение программы.

Вызов EXIT в функции приведет к тому, что функция вернет NULL.

Примеры EXIT

Example 1. Использование оператора EXIT в селективной хранимой процедуре.
CREATE PROCEDURE GEN_100
RETURNS (
  I INTEGER
)
AS
BEGIN
  I = 1;
  WHILE (1=1) DO
  BEGIN
    SUSPEND;
    IF (I=100) THEN
      EXIT;
    I = I + 1;
  END
END
См. также:

LEAVE, BREAK, CONTINUE,SUSPEND.