Los PL-SQL Packages en Oracle se utilizan para guardar los subprogramas y otros objetos de la base de datos. Por lo general los Packages en Oracle o paquetes constan de lo siguiente:

– Especificación o cabecera: esta contiene las declaraciones públicas que están accesibles desde cualquier parte de la aplicación de sus programas, de sus tipos, variables, cursores, excepciones, etc.

– Cuerpo o Body: Aquí se almacenan los detalles de la implementación y declaraciones privadas solamente los accesibles desde los objetos del paquete.

Ejemplo de un package o paquete en Oracle:

/* Cabecera */

Create or Replace Package Buscar_Empleado As

Type t_reg_t_empleado Is Record

(num_empleado t_empleado.emp_no%Type,

apellido t_empleado.apellido%Type,

salario t_empleado.salario%Type,

departamento t_empleado.dept_no%Type);

/* PL-SQL Procedures en Oracle */

Procedure ver_por_numero(pin_codigo t_empleado.emp_no%Type);

Procedure ver_por_apellido(pst_apellido t_empleado.apellido%Type);

/* PL-SQL Function en Oracle */

Function datos (pin_codigo t_empleado.emp_no%Type) return t_reg_t_empleado;

End Buscar_Empleado;

Libro-Reporte GRATIS: “Cómo Construir un SELECT Eficiente en ORACLE en Solo 7 Pasos” ¡ Haz Click Aquí y Descárgalo Ahora !

/* Cuerpo */

Create or Replace Package Body Buscar_Empleado As

lre_empleado  t_reg_t_empleado;

/* PL-SQL Procedures en Oracle */

Procedure ver_por_numero (pin_codigo emple.emp_no%Type) Is

begin

select emp_no, apellido, salario, dept_no into lre_empleado from t_empleado where emp_no=pin_codigo;

ver_empleado;

end ver_por_numero;

/* PL-SQL Procedures en Oracle */

Procedure ver_por_apellido (pst_apellido t_empleado.apellido%Type) Is

begin

select emp_no,apellido,salario,dept_no into lre_empleado from t_empleado where apellido=pst_apellido;

ver_empleado;

end ver_por_apellido;

/* PL-SQL Function en Oracle */

Function datos (pin_codigo t_empleado.emp_no%Type) return t_reg_t_empleado Is

begin

select emp_no,apellido,salario,dept_no into lre_empleado from t_empleado where emp_no=pin_codigo;

return lre_empleado;

end datos;

/* Procedimiento privado */

Procedure ver_empleado Is

begin

Dbms_Output.Put_Line(lre_empleado.num_empleado || ‘*’ || lre_empleado.apellido || ‘*’ || lre_empleado.salario || ‘*’||     lre_empleado.departamento);

end ver_empleado;

End Buscar_Empleado;

El uso de los objetos definidos en los PL-SQL Packages en Oracle

Se puede hacer uso de estos de la siguiente manera:

  • Desde el package: Cualquier objeto puede ser usado dentro del PL-SQL Package por otro objeto declarado en el mismo. Para hacer uso de este paquete se tiene que llamar de la siguiente forma:

nombre_procedimiento (lista de parametros);

  • Desde afuera del package: Se pueden usar los objetos de un paquete siempre y cuando hayan sido declarados en la especificación del mismo. Y para llamar desde afuera del package se usa lo siguiente:

execute nombre_paquete.nombre_procedimiento (lista de parametros);

Te propongo que pruebes de inmediato estos ejemplos en tu Base de Datos con tus propias tablas,  PL-SQL Procedures en OraclePL-SQL Function en Oracle, para que comiences a ejercitar la mano y aprendas a dominar la estructura de 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 Packages en Oracle y/o dime cuál es tu principal frustración a la hora de trabajar con PL-SQL Packages en Oracle. Estaré muy atento respondiendo tus preguntas y/o comentarios, gracias.

Saludos

Roberto Vicencio - Autor del Libro-Reporte:

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