Saltar al contenido

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

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

4 comentarios en «Sepa como usar la cláusula EXCEPTION en los PL-SQL Procedures en Oracle»

  1. Hola Roberto Vicencio:

    Podrías darme info. sobre arrays y mostrarme aunque sea un ejemplo de como usar arrays en PL/SQL Oracle 10g.

    Saludos!
    PD: Estoy empezando a ambientarme con Oracle.

    1. Hola Fidel, gracias por comunicarte y por tu comentario, a continuación te muestro un ejemplo de como se debe usar un arreglo:

      — se define la estructura del arreglo e tipo varchar
      type tipo_arreglo_letra is varray(5) of varchar2(1);

      — se crea la variable de arreglo
      lar_letras tipo_arreglo_letra;

      begin
      — se inicializa la variable de arreglo
      lar_letras:= tipo_arreglo_letra(null,null,null,null,null);

      — se asignan valores a cada posición del arreglo
      lar_letras(1):= ‘a’;
      lar_letras(2):= ‘e’;
      lar_letras(3):= ‘i’;
      lar_letras(4):= ‘o’;
      lar_letras(5):= ‘u’;

      — Se imprime cada dato del arreglo
      for lin_pos in 1..lar_letras.limit
      loop
      dbms_output.put_line(lar_letras(lin_pos));
      end loop;
      end;

      PD: Si esta info te parece interesante enviale este link a tus amigos que pienses que también les puede ser util, gracias.
      https://dominatuspackagesen0racle.com/

      Saludos
      Roberto Vicencio – Para Tu Éxito con Oracle

    1. Hola dds, gracias por comunicarte, puedes encontrar ejemplos de cursores en el siguiente artículo:
      https://dominatuspackagesen0racle.com/como-se-debe-utilizar-un-cursor-en-tus-pl-sql-procedures-en-oracle.html

      PD: Ya pudiste ver mi libro reporte sobre ‘Cómo Crear un SELECT Eficiente en ORACLE en Solo 7 Pasos’, si aun no lo tienes en tus manos puedes obtenerlo gratis desde aquí: https://dominatuspackagesen0racle.com/

      Saludos
      Roberto Vicencio – Para Tu Éxito con Oracle.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.