Exception when others then; ... return;

Dicas do Oracle Forms Builder - Blocos, Itens, LOV, Canvas, Triggers, comandos, PLL, d2kwutil, FMB, Alert, menus, etc
Responder
tocha
Rank: Estagiário Júnior
Rank: Estagiário Júnior
Mensagens: 2
Registrado em: Ter, 21 Ago 2007 5:36 pm
Localização: Ourinhos - SP

Pessoal, o que acontecerá quando der exceção?

Selecionar tudo

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???

Obrigado.
Avatar do usuário
Toad
Rank: DBA Pleno
Rank: DBA Pleno
Mensagens: 253
Registrado em: Sex, 18 Nov 2005 2:14 pm
Localização: Seattle, WA
Contato:
Matheus Gonçalves
matheus.dev
twitter.com/developer__c

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:

Selecionar tudo

. . . 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;
Avatar do usuário
dr_gori
Moderador
Moderador
Mensagens: 5024
Registrado em: Seg, 03 Mai 2004 3:08 pm
Localização: Portland, OR USA
Contato:
Thomas F. G

Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered

Exatamente, no seu caso, o RETURN simplesmente sai da procedure/função/bloco em questão e retorna pra quem chamou.
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 6 visitantes