Oracle PL/SQL – Personalizando o tratamento de exceções
Fala Pessoal!
Essa semana apareceu uma necessidade de tratar um exception de uma procedure PL/SQL de uma forma mais personalizada.
Para exemplificar o caso, existe uma procedure que consolida algumas informações de um sistema para outro, esses sistemas estão em banco de dados diferentes e em locais diferentes.
Nesta rotina quando ocorre algum erro o Oracle dispara um email para todos os envolvidos nesta integração.
Até ai tudo funcionando normalmente até surgir a necessidade de tratar a mensagem erro, se for erro X enviar o email para tal pessoal de for erro Y enviar email para outra pessoa e assim por diante.
Para resolver esta necessidade criei um tratamento bem simples no exception.
Existe uma forma bem simples de tratar as mensagens de erro dentro do EXCEPTION OTHERS do seu código PL/SQL.
Chega de conversa e vamos ao exemplo:
1 2 3 4 5 6 7 8 |
EXCEPTION WHEN OTHERS THEN IF sqlcode ='-12170' THEN --> Erro de CONEXÃO dbms_output.put_line('Erro de conexão! Verifique se a maquina esta ligada!'); ELSE dbms_output.put_line('Erro na integração!'||SQLERRM); END IF; END; |
Vale lembrar que este código foi utilizado somente no EXCEPTION WHEN OTHERS pois o Oracle possui alguns tratamos de exceção conforme podemos ver na imagem abaixo.
Mas isso será tema de um outro post.
Para mais informações verifique o link
Valeu pessoal!
Até a próxima.
Muito bom!!
Obrigado.
Valeu! Medeiros!