Sepa como usar la cláusula EXCEPTION en los PL-SQL Procedures en Oracle


Si 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.

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

Si desea saber más puede continuar aquí

EL CASO DE LA “IDEALIZACION” DEL SOFTWARE ERP

A pesar de que SUPUESTAMENTE “TODOS”  lo saben:

HOY EN DIA..LA TECNOLOGÍA  PUEDE REPRESENTAR VENTAJA COMPETITIVA EN CUALQUIER  NEGOCIO.

Todavía hoy es posible que los empresarios (principalmente pequeños y medianos) tomen caminos equivocados yendo tras “espejitos de oro”, tirando a la basura su dinero.

 Ahora le pasó a uno de mis clientes, digámoslo así:

“EN MIS PROPIAS NARICES”.

En el año 2007 vendí un ERP a una empresa dedicada a la renta de maquinaria.

Venían de usar los sistemas modulares más conocidos en México: ASPEL SAE y COI.

Después de mucho esfuerzo y no poco sacrificio logramos implementar todo el sistema, excepto el módulo de Servicio, la razón: encontraron otro software aparentemente más adecuado y las pantallas de captura del nuestro, no eran lo que  esperaban.

Finalmente decidieron comprar el otro, esperanzados en las “grandes maravillas” que obtendrían. Durante todos estos años supe que andaban en el asunto de implementarlo, pasaron varios encargados del área de sistemas, y nada, no lo conseguían.

A principios de 2012 me piden que les ayude a “unir” aquel software administrativo con el nuestro (el nuestro tiene el control de Inventarios, Contabilidad, etc). Luego de mucho análisis, vimos que sí era posible, para automatizarlo requeríamos de una inversión adicional de unos $5,000 dls (Síguele sumando a la cantidad que ya habían pagado por el otro software, más capacitación varias veces, la última en el 2012).

Pues en esas  estábamos, el director dispuesto a invertir otros 5mil dólares y nosotros a punto de arrancarnos con la interface cuando de pronto la líder de proyecto, se va dando cuenta de (entre otras cosas):

    El “super” sistema administrativo, era lentísimo: no podía, aún en red local, responder rápido a la consulta de 110 mil artículos.

    El “super” sistema, no cuenta con multi-almacenes, es decir, no está preparado para trabajar con sucursales.

Con solo esos 2 puntos, todo el proyecto se venía abajo, ya que era necesario que se trabajara en áreas donde no hay internet de banda ancha, y solo se cuenta con señal satelital, que es mucho más lento.

Conclusión:

    No se implementó el módulo de servicio por 5 años, esperando al “software maravilla”.

    Se tiró (literalmente desde mi punto de vista) el dinero a la basura en la compra del otro software, más capacitación. (No mencionaré el super servidor que se tuvo que comprar porque ese esperamos utilizarlo para otra cosa).

Obviamente vamos a terminar de implementar el módulo de Servicio con nuestro ERP. (Ya se hizo el análisis y aunque las pantallas no son tan “agradables” a la vista, cumple con los requerimientos).

Como veo, solo hace falta seguir moviéndome en mi industria para encontrar vez tras vez casos de empresarios que necesitan encontrar la forma de evitar perder Tiempo, Dinero y esfuerzo al elegir software.

Si deseas saber más puedes continuar aquí

Registro Winner

El Registry Winner es un limpiador del registro de resolución de errores de alto rango que corrige los errores de la computadora y optimiza la velocidad del sistema. En uso normal, los varios errores molestos del registro se arrastrarán gradualmente en su sistema, causando problemas tales como velocidad reducida, congelamiento del sistema, pantallas azules, reinícios irregulares, mensajes de errores etc.

Registry Winner utiliza la tecnología más avanzada para explorar su disco duro y para darle un diagnostico comprensivo en segundos. Una vez que se hayan identificado y detectado los problemas, Registry Winner le ofrece una solución profesional y muy eficiente, que pondrá su computadora a funcionar perfectamente. Mediante el uso de Registry Winner regularmente, su sistema no sólo debe ser más estable sino que también ayudará a racionalizar una actualización costosa de hardware en su PC.

Optimizador del registro

Realiza una exploración versátil del registro de Windows para detectar y reparar referencias inválidas y errores incorrectos. También ayuda a dinamizar el registro de la PC sin mejoras costosas de hardware. Su PC se restaurará como nuevo y funcionando mucho más rápidamente después de usar esta herramienta.

Salvaguardar la privacidad

Protege su privacidad, garantizando y protegiendo todos los rastros de tus actividades en Internet y el ordenador, se borrarán permanentemente y serán irrecuperables, lo que acelera el rendimiento del sistema y recupera espacio en el disco duro.

Removedor de archivos chatarra

Explora y quita casi todos los archivos chatarra del sistema para proporcionar más libre espacio en su disco duro y permitir que las aplicaciones se ejecuten más rápidas y más eficientes. Esta herramienta ayudará a mantener tu sistema libre de desorden y limpia todos los datos y la información no deseada.

Desfibradora de archivos

Con tres diversos niveles para destrozar, archivos la desfibradora destrozará o destruirá archivos indeseados más allá de la recuperación. Quita totalmente un archivo o más archivos de su computadora, haciéndolo casi imposible de recuperarse.

Optimizador de la PC

PC Optimizer es un optimizador del Administrador de Início, Administrador de desinstalación, optimizador del sistema,optimizador de Servicio y optimizador de la memoria. Además de supervisar el arranque y desinstalar programas, también optimiza la velocidad de la red, disco, escritorio, archivos, servicio del sistema y de memoria para máximo rendimiento.

Doctor IE

Contiene un gran número de útiles consejos y trucos para gestionar las ventanas de Internet Explorer cuando navegan en Internet. Personaliza las propiedades de Internet, restaura los archivos de Internet y maneja objetos de ayuda del navegador que simplifica enormemente su experiencia de navegación.

Si deseas saber más puedes continuar aquí