Un paquete es bloque de código que se almacena en la base
de datos, un paquete está compuesto por una especificación y un cuerpo, en la
especificación se declaran los objetos que se van a utilizar, en el cuerpo se
detalla la operación que realizara el objeto, como por ejemplo realizar un
insert, un paquete puede tener uno o
más procedimientos, funciones y variables.
Sentencia
Base Especificación:
create or replace package
nombre_paquete is --Creación especificación del paquete
--Variables
--Funciones, procedimientos
function nombre_objeto(variable
tipo_de_variable) return tipo_de_variable;--Creación del objeto
end
nombre_paquete;--Fin
especificación del paquete
Sentencia
Base Cuerpo:
create or replace package body nombre_paquete is --Creacion del cuerpo se le agrega body
--Variables
--Funciones, procedimientos
function nombre_objeto(variable
tipo_de_variable) return tipo_de_variable;--Creación del objeto
begin --Inicio
de la funcion
return valor_de_retorno; --Retorna la variable
end nombre_objeto; --Fin del objeto
end
nombre_paquete; --Fin del paquete
Un paquete puede ser llamado por una otros
objetos paquetes, funciones, procedimientos y bloques anónimos, se debe llamar
el objeto utilizando el nombre del paquete punto(.) nombre del objeto.
(Nombre_paquete.nombre_objeto), no todos los objetos que usa el paquete deben
estar declarados en la especificación, pero si estos no son declarados en la
especificación no podrán ser llamados por ningún otro objeto, estos objetos
podrán utilizarse internamente en el paquete en el body.
Ejemplo:
Se solicita la creación de una función que permita
devolver una cadena de texto en mayúsculas y otra en minúsculas.
--Especificación:
create or replace package utilidades is
function mayusculas(texto varchar2) return varchar2;
function minisculas(texto varchar2) return varchar2;
end utilidades;
--Cuerpo:
create or replace package body utilidades is
function mayusculas(texto varchar2) return varchar2 is
begin
return upper(texto);
end mayusculas;
function minisculas(texto varchar2) return varchar2 is
begin
return lower(texto);
end minisculas;
end utilidades;
--Llamado desde un bloque anónimo
declare
minusculas varchar2(30);
mayusculas varchar2(30);
begin
minusculas :=
utilidades_kkk.minisculas('cArLOs
MaRio ConZalEZ');
mayusculas :=
utilidades_kkk.mayusculas('cArLOs
MaRio ConZalEZ');
dbms_output.put_line(minusculas);
dbms_output.put_line(mayusculas);
end;
Output:
78
ResponderEliminar