Neste artigo, você aprenderá sobre um dos procedimentos de manipulação de erros no banco de dados Oracle chamado Raise_application_error.
Oracle Raise_application_error Procedimento
O Raise_application_error no Oracle é um procedimento armazenado que permite que você aumente as mensagens de erro definidas pelo usuário.
Ao trabalhar com o banco de dados Oracle, você pode ter encontrado uma mensagem de erro como a seguinte:
[42000] [904] ORA-00904: "HI": Identificador inválido
Este tipo de erro é conhecido como um erro de mecanismo de banco de dados. É definido no banco de dados Oracle e aumentado quando ocorre um determinado erro.
Usando o procedimento Raise_application_error, o Oracle nos permite definir nossas mensagens personalizadas com um código de erro e mensagem específicos.
Isso pode ser muito útil quando ocorre um erro específico e você deseja alertar o usuário com uma mensagem de erro descritiva. Isso significa que você não terá ilustrado as exceções de erro sem nenhuma declaração sobre o que aconteceu.
Procedimento Sintaxe e parâmetros
O snippet de código a seguir estabelece a sintaxe do procedimento Raise_application_error:
Raise_application_error (
error_number,
mensagem,
[True | FALSO]
);
O procedimento é composto por três parâmetros principais:
Nota: Preservar a pilha de erros significa que o erro é adicionado à série de erros anteriores. Se a pilha não estiver preservada, a nova mensagem de erro substituirá todos os erros anteriores.
A seguir, estão alguns pontos essenciais a serem observados para o procedimento Raise_application_error:
Exemplo Raise_application_error armazenou o uso do procedimento
Neste exemplo, vamos demonstrar como usar o procedimento Raise_application_error usando o esquema de RH.
https: // docs.oráculo.com/cd/b13789_01/servidor.101/b10771/scripts003.htm
Considere o seguinte código fonte fornecido:
Crie ou substitua procedimento check_commission (
Número EMP_ID
)
é
FUNCIONÁRIO FNAME.Primeiro_name%tipo;
Em funcionários.Tipo%de email;
funcionários da SAL.Tipo%salarial;
funcionários da comissão.Comission_pct%tipo;
começar
Selecione First_Name, email, salário, comission_pct
em fname, em, sal, comissão
de funcionários
onde funcionário_id = emp_id;
Se a comissão for nula então
Raise_application_error (-20002, 'porcentagem de comissão nula encontrada!!'|| emp_id);
fim se;
exceção
quando outros então
Dbms_output.Put_line ('sqlcode:' || sqlcode);
Dbms_output.Put_line ('SQLERRM:' || SQLERRM);
fim;
O exemplo anterior começa criando um procedimento que aceita um ID de funcionário. Em seguida, usamos o funcionário para selecionar os valores dos funcionários. Finalmente, usamos uma declaração IF para verificar se a comissão da linha recebida é nula. Se for verdade, levantamos uma exceção.
Podemos ligar para o procedimento com o ID do Target Employeed:
Chame Check_commission (100);
Saída:
SQLCode -438
SQLERRM: SQL0438N APLICAÇÃO ERRO OU AVISO OU AVISO COM TEXTO DE DIAGNÓSTICO: "Porcentagem de comissão nula encontrada:. SQLSTATE = UD030
Conclusão
Neste tutorial, você aprendeu a usar o procedimento armazenado Raise_application_error para aumentar as mensagens de erro personalizadas.