Oracle Raise_Application_Error Función

Oracle Raise_Application_Error Función
Cuando se trata de desarrollo, siempre hay espacio para errores, ya sea un error de aplicación o un error relacionado con el usuario. Como desarrollador, deberá anticipar dónde puede ocurrir un error y tomar medidas de antemano. Comúnmente conocido como manejo de errores, este proceso puede permitir que su aplicación se ejecute sin problemas, incluso cuando ocurre un error sin terminar prematuramente.

En este artículo, aprenderá sobre uno de los procedimientos de manejo de errores en la base de datos de Oracle llamado Raise_Application_Error.

Oracle Raise_Application_Error Procedimiento

El Rais_Application_Error en Oracle es un procedimiento almacenado que le permite elevar los mensajes de error definidos por el usuario.

Al trabajar con la base de datos Oracle, es posible que haya encontrado un mensaje de error como el siguiente:

[42000] [904] ORA-00904: "Hola": Identificador no válido

Este tipo de error se conoce como error de motor de base de datos. Se define en la base de datos de Oracle y se plantea cuando ocurre un error dado.

Usando el procedimiento Rais_Application_Error, Oracle nos permite definir nuestros mensajes personalizados con un código de error y mensaje específicos.

Esto puede ser muy útil cuando ocurre un error específico y desea alertar al usuario con un mensaje de error descriptivo. Esto significa que no habrá desanimado las excepciones de error sin ninguna declaración sobre lo que sucedió.

Sintaxis del procedimiento y parámetros

El siguiente fragmento de código establece la sintaxis del procedimiento Raise_Application_Error:

Raise_Application_Error (
numero erroneo,
mensaje,
[Verdadero | FALSO]
);

El procedimiento se compone de tres parámetros principales:

  1. Error_number: este parámetro representa un valor entero específico que se asigna a un código de error. El valor de este parámetro varía de -20000 a -20999.
  2. Mensaje: este es un valor de cadena que denota el mensaje de error definido por el usuario para mostrar al usuario. El valor del parámetro del mensaje tiene una longitud de hasta 70 bytes.
  3. KeepErrorStack: este parámetro es un valor booleano que determina si la pila de errores debe conservarse. Por defecto, el procedimiento no mantiene la pila de errores.

Nota: Preservar la pila de errores significa que el error se agrega a la serie de errores anteriores. Si la pila no se conserva, el nuevo mensaje de error reemplaza todos los errores anteriores.

Los siguientes son algunos puntos esenciales a tener en cuenta para el procedimiento Rais_Application_Error:

  1. El motor de la base de datos se detiene automáticamente e inmediatamente la ejecución del bloque principal cuando se encuentra con el procedimiento almacenado Raise_Application_Error.
  2. El procedimiento obliga a una reversión para todas las operaciones realizadas en los parámetros de salida y salida.
  3. La función de reversión del procedimiento Raise_Application_Error no afecta las estructuras de datos globales, como los objetos de la base de datos. Sin embargo, si desea realizar una reversión en dichos objetos, debe llamar a la operación de reversión explícitamente.

Ejemplo Raise_Application_Error Uso del procedimiento almacenado

En este ejemplo, vamos a demostrar cómo usar el procedimiento Raise_Application_Error utilizando el esquema de recursos humanos.

https: // documentos.oráculo.com/cd/b13789_01/servidor.101/b10771/scripts003.htm

Considere el siguiente código fuente proporcionado:

crear o reemplazar el procedimiento check_commission (
número emp_id
)
es
empleados de fname.First_Name%type;
Em empleados.Tipo de%de correo electrónico;
empleados de sal.Tipo de%salario;
empleados de comisión.Comision_pct%type;
comenzar
Seleccione First_Name, correo electrónico, salario, comision_pct
en fname, em, sal, comisión
de empleados
donde empleado_id = emp_id;
Si la comisión es nula entonces
Rais_application_error (-20002, 'porcentaje de comisión nulo encontrado!!'|| emp_id);
terminara si;
excepción
Cuando otros entonces
Dbms_output.Put_line ('sqlcode:' || sqlcode);
Dbms_output.Put_line ('sqlerrm:' || sqlerrm);
fin;

El ejemplo anterior comienza creando un procedimiento que acepta una identificación de empleado. Luego usamos el empleado para seleccionar los valores de los empleados. Finalmente, usamos una declaración IF para verificar si la comisión de la fila recibida es nula. Si es cierto, planteamos una excepción.

Podemos llamar al procedimiento con la identificación objetivo de empleo:

Llame a check_commission (100);

Producción:

Sqlcode -438
SQLERRM: SQL0438N Aplicación planteada por error o advertencia con texto de diagnóstico: "Porcentaje de comisión nula encontrado:. Sqlstate = UD030

Conclusión

En este tutorial, aprendió cómo usar el procedimiento almacenado Raise_Application_Error para elevar los mensajes de error personalizados.