Un procedimiento es un bloque de código que
se almacena en la base de datos, y puede ser utilizado en cualquier momento
para realizar un proceso específico, los procedimientos no retornan valores.
Sentencia
básica:
Create
or replace procedure nombre_procedimiento
(variable1 [out in] tipo_variable) is
--Definición
de variables y cursores
Begin --Inicio del procedimiento
--Cuerpo del procedimiento
End nombre_procedimiento; --Fin del
procedimiento
En un procedimiento se pueden ejecutar
varias sentencias SQL como insertar, consultar, eliminar o actualizar, los
procedimientos no pueden retornar valores, pero pueden generar una salida por
medio de una variable declarada como out
create procedure prueba (fecha out date).
Los procedimientos pueden ser llamados
por otros procedimientos, funciones,
paquetes o bloques anónimos, los procedimientos
pueden contener más de una variable de entrada (in), de salida (out) o
ambas (out in).
Ejemplo:
Se necesita crear un procedimiento que pase los
datos de los clientes por fechas, a la tabla clientes_old, los datos pasados
deben ser eliminados de la tabla clientes.
--Creación del
procedimiento
Create or replace
procedure traspaso_de_clientes(fecha_inicio in date, fecha_fin in
date) is
Cursor cur_clientes is
--Declaración del cursor
Select *
from clientes
where fecha
between fecha_inicio and fecha_fin;
Begin --Inicio del procedimiento
For clien in cur_clientes
loop --Inicia el
ciclo loop
Insert into clientes_old
values (clien); --Inserta
los datos en la tabla clientes
End loop; --Fin del
ciclo loop
Delete clientes
where fecha
between fecha_inicio and fecha_fin;--Elimina los clientes traspasados
End traspaso_de_clientes; --Fin del
procedimiento
------------------------------------------------------------------------------------
--Utilizando un
bloque anónimo para llamar el procedimiento.
Begin –Inicio del bloque anónimo
traspaso_de_clientes(‘01/01/2016’,’31/12/2016’); --Llamado
al procedimiento
End; --Fin del bloque anónimo
No hay comentarios:
Publicar un comentario