Oracle Raise_application_error Função

Oracle Raise_application_error Função
Quando se trata de desenvolvimento, sempre há espaço para erros, seja um erro de aplicativo ou um erro relacionado ao usuário. Como desenvolvedor, você precisará antecipar onde pode ocorrer um erro e agir com antecedência. Comumente conhecido como manuseio de erros, esse processo pode permitir que seu aplicativo seja executado sem problemas, mesmo quando ocorre um erro sem encerrar prematuramente.

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:

  1. Error_number - Este parâmetro representa um valor inteiro específico que é mapeado para um código de erro. O valor deste parâmetro varia de -20000 a -20999.
  2. Mensagem - Este é um valor de string que denota a mensagem de erro definida pelo usuário para ser exibida ao usuário. O valor do parâmetro da mensagem tem um comprimento de até 70 bytes.
  3. KeeperRorStack - Este parâmetro é um valor booleano que determina se a pilha de erros deve ser preservada. Por padrão, o procedimento não mantém a pilha de erros.

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:

  1. O mecanismo de banco de dados interrompe automaticamente e imediatamente a execução do bloco pai quando encontra o procedimento armazenado raise_application_error.
  2. O procedimento força uma reversão para todas as operações feitas para os parâmetros fora e fora.
  3. O recurso RoleTe_application_error Procedimento não afeta as estruturas de dados globais, como objetos de banco de dados. No entanto, se você deseja executar uma reversão nesses objetos, deve chamar a operação de reversão explicitamente.

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.