PL-SQL Procedures en OracleSi aprendes a usar eficientemente la cláusula EXCEPTION podrás manejar todas las excepciones que ocurran dentro de los PL-SQL Procedures en Oracle que construyas en la Base de Datos Oracle.

Una excepción en tus PL-SQL Procedures en Oracle ocurre cuando el resultado de una acción no es esperada por el proceso y no puede ser manejada por este, generando de inmediato un error en tiempo de ejecución terminando abruptamente el proceso, es decir, una excepción es algo inesperado que se traduce como un error que en la ejecución normal del PL-SQL Procedures en Oracle nunca ocurre.

Afortunadamente Oracle cuenta con herramientas que permiten manejar las excepciones o errores en tiempo de ejecución y permitir que un proceso pueda continuar ejecutándose, me refiero al bloque BEGIN – END que usa la cláusula EXCEPTION en tus PL-SQL Procedures en Oracle.

Revisemos un ejemplo práctico para entender mejor el uso de la cláusula EXCEPTION en los PL-SQL Procedures en Oracle:

Ejemplo #1: Supone que tienes un procedimiento que consulta un registro a una tabla pero se produce una excepción cuando no se encuentra el registro que se está buscando:

/* PL-SQL Procedures en Oracle */

Procedure Prc_Buscar_Nombre(pin_rut   in   t_empleado.rut%type, pst_nombre  out  t_empleado.nombre%type ) is

Begin

Select emp.nombre into pst_nombre from t_empleado emp where emp.rut=pin_rut;

End Prc_Buscar_Nombre;

En este ejemplo ocurre una excepción o un error en tiempo de ejecución cuando el parámetro pin_rut llega con un valor que no existe en la tabla t_empleado, esta excepción termina el proceso de inmediato en tus PL-SQL Procedures en Oracle.

TÚ REPORTE: “Cómo Construir un SELECT Eficiente en ORACLE en Solo 7 Pasos”

¡ Haz Click Aquí y Descárgalo GRATIS Ahora !

Ejemplo #2: Para solucionar el problema que ocurre en el ejemplo anterior debes agregar la cláusula EXCEPTION para controlar el error, veamos cómo se hace:

/* PL-SQL Procedures en Oracle */

Procedure Prc_Buscar_Nombre(pin_rut   in   t_empleado.rut%type, pst_nombre  out t_empleado.nombre%type) is

Begin

Begin

Select emp.nombre into pst_nombre from t_empleado emp where emp.rut=pin_rut;

Exception

When No_Data_Found Then

pst_nombre:= ‘Empleado no existe’;

End;

Exception

When Others Then

pst_nombre:= ‘Error: ’||To_Char(Sqlcode)||’ – ‘||Sqlerrm;

End Prc_Buscar_Nombre;

En este ejemplo de PL-SQL Procedures en Oracle se agregó el control de excepciones en la consulta a la tabla t_empleado usando la variable reservada de Oracle No_Data_Found que devuelve verdadero si la consulta Select no pudo encontrar el registro, retornando en la misma variable pst_nombre la descripción del error. Además se incluyo otra excepción al final del proceso para controlar cualquier otro error que pueda ocurrir en tiempo de ejecución usando la variable reservada Others que devuelve un verdadero cuando ocurre cualquier error que no ha sido controlado por ninguna otra excepción anterior dentro del PL-SQL Procedures en Oracle, el error se obtiene de las variables reservadas Sqlcode que devuelve el código del error y Sqlerrm que devuelve la descripción del error y todo se retorna en la variable pst_nombre.

Te propongo que pruebes de inmediato este ejemplo en tu Base de Datos con tus propias tablas, PL-SQL Procedures en Oracle y PL-SQL Function en Oracle, para que comiences a ejercitar la mano y aprendas a dominar esta nueva técnica en tus PL-SQL Packages en Oracle.

Estoy muy interesado en conocer tu opinión y/o comentario sobre este artículo, también cuéntame sobre qué es lo que quieres saber de PL-SQL Procedures en Oracle y/o dime cuál es tu principal frustración a la hora de trabajar con PL-SQL Procedures en Oracle. Estaré muy atento respondiendo tus preguntas y/o comentarios, gracias.

Saludos

Roberto Vicencio - Escritor del Reporte:

Cómo Construir un SELECT Eficiente en ORACLE en Solo 7 Pasos