sql >> Base de Datos >  >> RDS >> Database

Cómo declarar una excepción definida por el usuario mediante PRAGMA EXCEPTION_INIT

Como se discutió en la introducción del manejo de excepciones de PL/SQL, hay tres formas de declarar excepciones definidas por el usuario. Entre esas tres formas, ya hemos aprendido las dos primeras formas que declaran una excepción definida por el usuario usando

  1. Levantar declaración y
  2. Procedimiento Raise_Application_Error

La única forma que queda por discutir ahora es declarar excepciones definidas por el usuario utilizando la función PRAGMA EXCEPTION_INIT en Oracle Database.

Por lo tanto, en este tutorial de PL/SQL, aprenderemos cómo declarar una excepción definida por el usuario de PL/SQL en Oracle Database mediante el uso de la función PRAGMA EXCEPTION_INIT.

¿Qué es PRAGMA EXCEPTION_INIT?

Pragma Exception_Init es una declaración de dos partes donde la primera parte se compone de la palabra clave PRAGMA y la segunda parte es la llamada Exception_Init.

Palabra clave PRAGMA

Un pragma es una directiva del compilador que indica que las declaraciones seguidas de la palabra clave PRAGMA son una declaración de directiva del compilador, lo que significa que la declaración se procesará en el momento de la compilación y no en el tiempo de ejecución.

Inicio de excepción de PRAGMA

Exception_init lo ayuda a asociar un nombre de excepción con un número de error de Oracle. En otras palabras, podemos decir que usando Exception_Init puede nombrar la excepción.

¿Por qué nombrar la excepción?

Sí, hay una manera de declarar una excepción definida por el usuario sin el nombre y es usando el procedimiento Raise_Exception_Error. De hecho, esta es una manera simple y fácil, pero como aprendimos en el último tutorial, para manejar excepciones sin nombre, usamos el controlador de excepciones OTROS.

Ahora piense que en su proyecto tiene múltiples excepciones y eso también sin nombre. Para manejar todas esas excepciones, tiene un único controlador de excepciones con el nombre OTROS. En este caso, cuando ocurra una condición de excepción, el compilador mostrará la pila de errores producida por el controlador OTHER.

¿Te imaginas lo difícil que será rastrear esa parte de tu proyecto que está causando el error? Para rastrear esa parte, debe revisar todas y cada una de las líneas de su código. Esto será una mera pérdida de tiempo.

Puede ahorrarse todos esos esfuerzos desperdiciados de tiempo simplemente nombrando la excepción, de esa manera puede diseñar un controlador de excepciones específico para el nombre de su excepción que será fácilmente rastreable. Esta es la ventaja de nombrar la excepción.

Sintaxis de Pragma Exception_Init.

PRAGMA EXCEPTION_INIT (exception_name, error_number);

Ejemplo:declarar una excepción definida por el usuario mediante Pragma Exception_Init

DECLARE
  ex_age    EXCEPTION;
  age       NUMBER    := 17;
  PRAGMA EXCEPTION_INIT(ex_age, -20008);
BEGIN
  IF age<18 THEN
    RAISE_APPLICATION_ERROR(-20008, 'You should be 18 or above for the drinks!');
  END IF;
  
  DBMS_OUTPUT.PUT_LINE('Sure! What would you like to have?');
  
  EXCEPTION WHEN ex_age THEN
    DBMS_OUTPUT.PUT_LINE(SQLERRM);   
END;
/

He explicado detalladamente este ejemplo en mi videotutorial en mi canal de YouTube. Le pediría que consulte el tutorial allí.

¿Por qué usar PRAGMA EXCEPTION_INIT con RAISE_APPLICATION_ERROR?

Aunque no es obligatorio usar PRAGMA EXCEPTION_INIT con el procedimiento RAISE_APPLICATION_ERROR, es más una preferencia personal que una regla de programación. Si desea imprimir un mensaje de error con un número de error como la forma estándar de Oracle de mostrar un error, la mejor práctica es utilizar PRAGMA EXCEPTION_INIT con el procedimiento RAISE_APPLICATION_ERROR.

Pero si solo desea imprimir el mensaje de error y no el número de error, puede usar PRAGMAEXCEPTION_INIT con la instrucción RAISE.

Ese es el tutorial de PL/SQL sobre cómo declarar una excepción definida por el usuario en Oracle Database usando PRAGMA EXCEPTION_INIT. Espero que hayas aprendido algo nuevo. Si encuentra este tutorial informativo, compártalo en sus redes sociales. ¡Gracias y que tengas un gran día!