En este capítulo veremos cómo están formados los bloques anónimos de PL/SQL mostrando sus tres partes básicas y haremos tres ejemplos de estos para que quede claro la forma de usarlos
En un bloque anónimo de PL/SQL pueden existir tres partes básicas:
- la sección declarativa contendrá variables, constantes, excepciones y cursores. Todo precedido por la palabra reservada DECLARE
- la segunda es la sección ejecutable en la que estarán las instrucciones del programa y esta comienza con la palabra reservada BEGIN y finaliza con la palabra END. Cabe recordar que si el programador hace manejo de excepciones veremos la sección EXCEPTION antes del END
- la última parte del bloque será la de manejo de las excepciones o errores en las que el programador tendrá que prever cualquier posible error de ejecución en el programa y evitar así que el programa reviente.
Estructura básica
Acá están las tres partes del bloque anónimo explicadas anteriormente, este ejemplo no hace absolutamente nada a la hora de ejecutarse:
--dentro de esta sección van declaradas
--las variables a usar en nuestro bloque PL/SQL
BEGIN
--Esta es la sección en la que se ejecuta todo nuestro programa
NULL;
EXCEPTION
--En esta sección del programa se manejará todos los posibles
--errores de la aplicación
WHEN OTHERS THEN
NULL;
END;
Salida:
Statement processed.
Imprimiendo mensaje en un bloque anónimo
Este es un ejemplo de un bloque de código PL/SQL con el mínimo de código, podrán observar que solo es indispensable la parte ejecutable, no hay sección de DECLARE ni EXCEPTION:
DBMS_OUTPUT.PUT_LINE('Bienvenidos al blog de tutoriales PL/SQL');
END;
Salida:
Bienvenidos al blog de tutoriales PL/SQL
Statement processed.
Declarando variables numéricas
En este ejemplo vamos declarar tres variables numéricas. Asignaremos valores a las dos primeras y el valor de la tercera variable será calculado haciendo la suma de las dos primeras variables. Posteriormente mostraremos el resultado por pantalla:
lv_numero1 NUMBER(2):= 2;
lv_numero2 NUMBER(2):= 2;
lv_resultado NUMBER(2);
BEGIN
lv_resultado:= lv_numero1 + lv_numero2;
DBMS_OUTPUT.PUT_LINE(lv_resultado);
END;
Salida:
4
Statement processed.
En este ejemplo vamos a hacer la búsqueda de un número en un campo que sabemos que no existe, sin el manejo de errores pertinente el programa se detendría por un error de ejecución mal manejado, pero como lo trabajaremos con un tipo de excepción llamado NO_DATA_FOUND este solo mostrará un mensaje en pantalla que hemos determinado, si bien existen otros muchos tipos de errores y muchas maneras de manejarlos vamos con este que es uno de los más comunes:
lv_employee_id NUMBER(3):= 56;--este valor no existe en la tabla
BEGIN
SELECT employee_id INTO lv_employee_id FROM oehr_employees
WHERE employee_id = lv_employee_id;
EXCEPTION
WHEN NO_DATA_FOUND THEN
DBMS_OUTPUT.PUT_LINE('No se pudo encontrar la información');
END;
Salida:
No se pudo encontrar la información
Statement processed.