13.6.2 Метки операторов
[begin_label:] BEGIN
[statement_list]
END [end_label]
[begin_label:] LOOP
statement_list
END LOOP [end_label]
[begin_label:] REPEAT
statement_list
UNTIL search_condition
END REPEAT [end_label]
[begin_label:] WHILE search_condition DO
statement_list
END WHILE [end_label]
Метки разрешены для блоков BEGIN ... END и операторов LOOP, REPEAT и WHILE. Использование меток в этих операторах подчиняется следующим правилам:
begin_labelдолжна следовать за двоеточием.begin_labelможет быть указана безend_label. Еслиend_labelприсутствует, она должна совпадать сbegin_label.end_labelне может быть указана безbegin_label.Метки на одном уровне вложенности должны быть различны.
Длина метки может составлять до 16 символов.
Для ссылки на метку внутри помеченного блока используется оператор ITERATE или LEAVE. В следующем примере эти операторы используются для продолжения итерации или завершения цикла:
CREATE PROCEDURE doiterate(p1 INT)
BEGIN
label1: LOOP
SET p1 = p1 + 1;
IF p1 < 10 THEN ITERATE label1; END IF;
LEAVE label1;
END LOOP label1;
END;
Область действия метки блока не включает код обработчиков, объявленных внутри блока. Подробности см. в Разделе 13.6.7.2, «Оператор DECLARE ... HANDLER».
© 2025 Oracle
Licensed under the GPLv2 License.