sql >> Base de Datos >  >> RDS >> Oracle

Cómo declarar una excepción definida por el usuario utilizando una variable de excepción en la base de datos Oracle

En la Introducción a las excepciones de PL/SQL, aprendimos que hay tres formas de declarar excepciones definidas por el usuario en Oracle Database. En este tutorial, exploraremos la primera forma y aprenderemos a declarar una excepción definida por el usuario utilizando una variable de tipo de datos de excepción.

Declarar una excepción definida por el usuario usando la variable Exception es un proceso de tres pasos. Estos tres pasos son –

  1. Declarar una variable de tipo de datos de excepción: Esta variable va a llevar todo el peso sobre sus hombros.
  2. Generar la excepción: Esta es la parte en la que le informa al compilador sobre la condición que activará la excepción.
  3. Manejar la excepción: Esta es la última sección en la que especifica qué sucederá cuando se active el error que generó.

En este tutorial de PL/SQL te voy a explicar cada uno de estos tres pasos con la ayuda de un código PL/SQL.

Para fines de demostración, escribiré un código que verificará si el divisor es cero o no en la operación de división. Si es cero, se producirá un error y se mostrará al usuario; de lo contrario, se devolverá un valor real que es el resultado de la división aritmética en la pantalla de salida.

Paso 1:declarar una variable de tipo de datos de excepción

Por variable de excepción me refiero a una variable con tipo de datos de excepción. Como cualquier otra variable PL/SQL, puede declarar una variable de excepción en la sección de declaración del bloque PL/SQL anónimo y con nombre. Esta variable de excepción funcionará como una excepción definida por el usuario para su código.

DECLARE
  var_dividend NUMBER := 24;
  var_divisor NUMBER := 0;
  var_result NUMBER;
  ex_DivZero EXCEPTION;

En esta sección de declaración tenemos 4 variables. Entre estas 4 variables, las primeras 3 son variables de tipo de datos Número normal y la 4, que es ex_DivZero, es la variable de tipo de datos EXCEPCIÓN especial. Esta variable se convertirá en nuestra excepción definida por el usuario para este programa.

Paso 2:generar la excepción

El siguiente paso después de declarar una variable de excepción es generar la excepción. Para generar la excepción en PL/SQL usamos la instrucción Raise.

Raise es un tipo especial de declaración PL/SQL que cambia el flujo normal de ejecución del código. Tan pronto como el compilador encuentra una condición de aumento, transfiere el control al controlador de excepciones.

BEGIN
  IF var_divisor = 0 THEN
    RAISE ex_DivZero;
  END IF;

Aquí la condición de subida va acompañada de la condición SI-ENTONCES. Con la ayuda de esto podemos evitar cambios no deseados durante el flujo de control del programa. Usando If Condition nos aseguramos de que este error entre en acción solo cuando el divisor sea igual a 0.

var_result := var_dividend/var_divisor;
  DBMS_OUTPUT.PUT_LINE('Result = ' ||var_result);

Después de escribir la lógica para generar el error, puede escribir sus otras declaraciones ejecutables del código tal como lo hicimos aquí. Después de la instrucción Raise, realizamos la aritmética de la operación de división y almacenamos el resultado en la variable var_result, además de mostrarlo como salida mediante la instrucción DBMS OUTPUT.

Paso 3:Manejar la excepción

Esa es la sección principal del código. Aquí escribimos la lógica para nuestra excepción definida por el usuario y le decimos al compilador qué debe hacer si ocurre ese error.

EXCEPTION WHEN ex_DivZero THEN
    DBMS_OUTPUT.PUT_LINE('Error Error - Your Divisor is Zero');
END;
/

Aquí tenemos el controlador de excepciones para la variable ex_DivZero. En la sección de manejo de excepciones, tenemos una declaración DBMS OUTPUT que se mostrará cuando nuestro usuario defina el error que es ex_DivZero.

Ahora agrupemos todos estos fragmentos de códigos.

Error de división por cero utilizando la excepción definida por el usuario de PL/SQL en la base de datos Oracle

SET SERVEROUTPUT ON;
DECLARE
  var_dividend NUMBER := 24;
  var_divisor NUMBER := 0;
  var_result NUMBER;
  ex_DivZero EXCEPTION;
BEGIN
  IF var_divisor = 0 THEN
    RAISE ex_DivZero;
  END IF;
  var_result := var_dividend/var_divisor;
  DBMS_OUTPUT.PUT_LINE('Result = ' ||var_result);
  EXCEPTION WHEN ex_DivZero THEN
      DBMS_OUTPUT.PUT_LINE('Error Error - Your Divisor is Zero');
END;
/

Antes de ejecutar este programa, asegúrese de haber activado SERVEROUTPUT, de lo contrario no podrá ver el resultado.

Como en el Paso 1, establecemos el valor del divisor en cero, lo que a su vez generará el error de definición de usuario ex_DivZero debido a esto al compilar el código anterior, verá la cadena "Error Error:su divisor es cero", el mismo que especificamos en nuestro controlador de excepciones (paso 3).

Ese es el tutorial de PL/SQL sobre cómo declarar una excepción definida por el usuario usando una variable de tipo de datos de excepción. Espero que hayas disfrutado y aprendido algo nuevo. Si es así, asegúrese de compartir este blog en sus redes sociales y ayude a otros a aprender junto conmigo y mi canal. ¡Gracias y que tengas un gran día!