Для чего нужен RETURN во вложенном блоке процедуры?

Что вернёт в процедуре RETURN, если условие будет верно?

PROCEDURE reload(p_sequence VARCHAR2) IS 
BEGIN
    DECLARE
        lb_is_enabled CHAR (1);
    BEGIN
        BEGIN
            SELECT is_enabled INTO lb_is_enabled
            FROM tload
            WHERE sequence_name = p_sequence;
        EXCEPTION
            WHEN NO_DATA_FOUND THEN NULL;
        END;

        IF NVL (lb_is_enabled, 'Y') != 'Y'
        THEN
            RETURN;
        END IF;
    END;
END;

Или данная конструкция нужна, чтобы просто выйти из вложенного блока?


Ответы (1 шт):

Автор решения: 0xdb

В данном случае, RETURN немедленно прекратит выполнение процедуры, включая все блоки BEGIN ... END;, к которым он относится.

The RETURN statement immediately ends the execution of the subprogram or anonymous block that contains it.

Так как процедуры ничего не возвращают, и независимо от результата:

IF <условие> THEN
    RETURN;
END IF;

процедура закончится, то этот фрагмент кода бессмыслен и может быть удалён.

→ Ссылка