Em 8 de fevereiro de 2011 17:54, Eder Sousa <[email protected]> escreveu:

> Boa tarde!!!
> Existe alguma forma de "pegar" o erro que ocorreu, sem utilizar o
> exception?
>
>
Sem o "BEGIN...EXCEPTION..." não...



> create or replace function errodivisaoporzero() returns text as
> $$
> declare
>     valor1 integer;
>     valor2 integer;
>     resultado decimal(10,2);
> begin
>      valor1 = 10;
>      valor2 = 0;
>      resultado = valor1 / valor2
>
>      FUNCAO_TESTA_ERRO()    -- NESTE PONTO CHAMAR UMA FUNÇÃO GENERICA PARA
> TRATAMENTO DE ERROS;
> end
> $$
> language plpgsql volatile;
>
>
>
Tente assim:

create or replace function errodivisaoporzero() returns text as
$$
declare
    valor1 integer;
    valor2 integer;
    resultado decimal(10,2);
begin
  begin
     valor1 = 10;
     valor2 = 0;
     resultado = valor1 / valor2;
  exception
    when others then
       perform FUNCAO_TESTA_ERRO();    -- NESTE PONTO CHAMAR UMA FUNÇÃO
GENERICA PARA TRATAMENTO DE ERROS;
  end;

end
$$
language plpgsql volatile;



-- 
Fabrízio de Royes Mello
>> Blog sobre TI: http://fabriziomello.blogspot.com
>> Perfil Linkedin: http://br.linkedin.com/in/fabriziomello
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a