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 Oracle y PL-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”
GRACIAS por compartir tus conocimientos
Que tal Galo, gracias por tu comentario, para seguir aprendiendo en estos momentos estoy presentando unos vídeos gratuitos avanzados donde muestro como crear un Select Compuesto por Múltiples Tablas, para verlos puedes acceder desde el siguiente enlace https://dominatuspackagesen0racle.com/select/video_1/, no olvides dejarme tus comentarios, gracias.
Saludos
Roberto Vicencio – Para Tu Éxito con Oracle.