¿Cuándo Crear Un Procedimiento o

Una Función en el Lenguaje PL/SQL?

Si descubres cuando se debe construir un PL/SQL Procedures en Oracle (Procedimientos Almacenados) o una PL/SQL Function en Oracle (Funciones) comenzaras a desarrollar aplicaciones de software que sean modulares, ordenadas, eficientes y fáciles de mantener.

Muchas personas me han comentado que llevan

mucho tiempo trabajando con PL/SQL Packages en Oracle y aun no comprenden cuando se debe construir un Procedimiento (PL/SQL Procedures en Oracle) o una Función (PL/SQL Function en Oracle) en la Base de Datos Oracle.
 

Sinceramente también fue una pregunta que yo mismo me hice por mucho tiempo, pero que finalmente pude encontrar la respuesta, formulándome solo dos pequeñas preguntas para cada caso, las que permiten entender el concepto más rápidamente.

Veamos el significado de PL/SQL Procedures en Oracle y cuando se debe utilizar:

Los PL/SQL Procedures en Oracle (Procedimiento) son un conjunto de etapas, métodos o definiciones paso a paso, que se utilizan para resolver un problema. Es un subprograma o parte de un programa principal que en Oracle se denominan PL/SQL Packages en Oracle.

Para determinar si debes construir PL/SQL Procedures en Oracle tienes que responder de forma afirmativa a las siguientes preguntas:

  • ¿El proceso debe recibir Parámetros de Entrada?
  • ¿El proceso debe retornar varios Parámetros de Salida?

 

Por ejemplo, si necesitas un proceso que te permita obtener los datos de un empleado en particular, las respuestas a las preguntas 1 y 2 es SI, por lo tanto debes construir un Procedimiento (PL/SQL Procedures en Oracle) como el siguiente:

/* PL-SQL Procedures en Oracle */

Procedure Prc_Infor_Empleado(
p_Rut In Number,
p_Nombre Out Varchar2,
p_Direccion Out Varchar2,
p_Edad Out Number,
p_Id_Departamento Out Number) Is

Begin
      Select emp.nombre, emp.direccion, emp.edad, emp.id_departamento
      Into p_Nombre, p_Direccion, p_Edad, p_Id_Departamento
      From T_Empleados Emp
      Where Emp.Rut = p_Rut;

Exception
      When No_Data_Found Then
p_Nombre:= ‘Empleado no existe’;

End Prc_Infor_Empleado;

/* PL-SQL Procedures en Oracle */

Los PL/SQL Procedures en Oracle siempre deben recibir al menos un parámetro de entrada y deberá tener uno o varios parámetros de salida, pueden haber excepciones donde tal vez no necesites parámetros de salida, pero por lo menos se debe tener un parámetro de salida que indique si el proceso termino correctamente.

Veamos el significado de PL/SQL Function en Oracle y cuando se debe utilizar:

Las PL/SQL Function en Oracle (Función) son un conjunto de instrucciones que tienen un objetivo en particular y permiten retornar un resultado, pueden ser ejecutadas desde cualquier parte del código. Las PL/SQL Function en Oracle a diferencia de los PL/SQL Procedures en Oracle siempre devuelve un valor como respuesta.

Para determinar si debes utilizar una PL/SQL Function en Oracle tienes que responder de forma afirmativa a las siguientes preguntas:

  • ¿Lo que voy a desarrollar será ocupado en otros procesos?
  • ¿Debo obtener siempre un solo resultado?

 

Por ejemplo, si determinas que en varios procesos que debes construir para tu aplicación, siempre necesitas obtener la edad de un empleado para poder controlar ciertas acciones, las respuestas a las preguntas 1 y 2 es SI,  por lo tanto debes construir una PL/SQL Function en Oracle como la siguiente:

/* PL-SQL Function en Oracle */

Function Fnc_Empleado_Edad(p_Rut In Number) Return Number Is
l_Edad Number;
Begin
      Select emp.edad
      Into l_Edad
      From T_Empleados Emp
      Where Emp.Rut = p_Rut;
Return l_Edad;
Exception
      When No_Data_Found Then
            Return 0;
End Fnc_Empleado_Edad;

/* PL-SQL Function en Oracle */

Una PL/SQL Function en Oracle puede recibir uno o varios parámetros de entrada pero siempre debe retornar un solo valor como salida, en este caso la edad del empleado. Esta PL/SQL Function en Oracle puede ser utilizada por cualquier proceso que requiera obtener la edad del empleado.

Prueba de inmediato estas preguntas en los programas que debas desarrollar en la Base de Datos Oracle y determina si debes crear PL/SQL Procedures en Oracle o PL/SQL Function en Oracle.

Si te fijas en estos ejemplos solo ocupe un SELECT simple para crear el procedure y la function de manera que sea fácil de entender, pero se que en tu realidad necesitas crear consultas mas complejas que esto, donde se ocupan muchas mas tablas.

Por eso te recomiendo que veas la siguiente página donde explico porque debes dejar de usar SELECT simples y comenzar a usar SELECT de Múltiples Tablas…

Si combinas la técnica para crear SELECT Múltiples (que explico en video) con la técnica para crear procedures y function estarás dando un gran paso para dominar el Lenguaje PL/SQL. Comienza ya a practicar estas técnicas y aplícalas en tus programas de Oracle.

 

Saludos,

Roberto Vicencio
Para Tu Éxito con Oracle