BEGIN
INSERT INTO CTAS_RECEBER_CHEQUES ( VALOR, ID_CHEQUE, ID_TIT_RECEBER, EM_CARENCIA )
VALUES ( :BLK_CHEQUES_TITULO.VALOR_PAGO_CHEQUE, V_ID_CHEQUE, :TITULOS_RECEBER.ID_TIT_RECEBER, CARENCIA );
EXCEPTION WHEN OTHERS THEN
MSG('Erro ao Salvar! Confira os dados e tente novamente!');
RETURN;
END;
Tenho este "RETURN" na minha exceção e não sei o que ele faz. Gostaria de saber se o programa aborta a execução, dá algum tipo de rollback ou sei lá o que???
A partir da versão V1 do PL/SQL, podemos usar o comando RETURN sem a necessidade de usar uma expressão, retornando então NULL.
Desde que você não passe um valor para retorno, ele assume Nulo como parâmetro.
V1 considera o comando RETURN como mandatório. O compilador troca todos os comandos RETURN sem parâmetros por RETURN NULL.
Assim:
. . . O compilador converte de:
FUNCTION f RETURN NUMBER IS
x NUMBER;
BEGIN
x :=13;
IF . . . THEN
RETURN;
END IF;
RETURN x;
END;
. . . para:
FUNCTION f RETURN NUMBER IS
x NUMBER;
BEGIN
x :=13;
IF . . . THEN
RETURN NULL; -- NULL adicionado aqui...
END IF;
RETURN x;
END;