Está en la página 1de 14

BASE DE DATOS

Omar Vivas Calderón


Ingeniero de Sistemas
Especialista en Gerencia de Proyectos
Magister en E-Learning

ovivascalderon@yahoo.com
Móvil: 3002085159

INGENIERIA DE SISTEMAS
PROCEDIMIENTOS ALMACENADOS (Stored Procedures)

Un procedimiento almacenado es un bloque


de instrucciones (subprogramas,
procedimiento o función) el cual está
almacenado en la base de datos y listo para
ser usado desde el sistema gestor de base
de datos o desde una aplicación software
conectada a la BD.
PROCEDIMIENTOS ALMACENADOS (Stored Procedures)

En Postgres a diferencia de otros motores de bases de


datos, no existe una distinción explicita entre una función y
un procedimiento almacenado. En Postgres solo existen
funciones (usando la sintaxis CREATE [ OR REPLACE ]
FUNCTION nombre), claro que estas pueden ser usadas a
modo de una función o de un procedimiento almacenado.
Por lo general se crean funciones cuando se desea retornar
datos es decir en una consulta SELECT.
Se crean procedimientos almacenados únicamente cuando
se trata de realizar una operación que no retorne ningún
dato, por ejemplo, INSERT, UPDATE o DELETE.
PROCEDIMIENTOS ALMACENADOS (Stored Procedures)

En Oracle los procedimientos almacenado y las funciones se


distinguen por separado:
• Los Procedimientos: CREATE [OR REPLACE} PROCEDURE
nombre
• Las funciones: CREATE [OR REPLACE] FUNCTION nombre

Los procedimientos y funciones llevan a cabo tareas específicas, y


su mayor diferencia radica en que las “funciones devuelven un
valor”.
Ventajas de los SP

• Aplicaciones que acceden la misma BD pueden compartir


los procedimientos almacenados, eliminando el código
doble y reduciendo el tamaño de las aplicaciones.
• El fácil mantenimiento.
• Cuando un procedimiento se actualiza, los cambios se
reflejan automáticamente en todas las aplicaciones, sin la
necesidad de recompilar.
• Los procedimientos almacenados son ejecutados por el
servidor, no por el cliente lo que reduce el tráfico en la red y
mejora el performance o desempeño, especialmente para el
acceso del cliente remoto.
BD

Aplicación

Tablas SP Funciones
Sintaxis Oracle (Procedimientos)

CREATE [OR REPLACE} PROCEDURE nombre


(nombre-parámetro {IN | OUT | IN OUT} tipo de dato, ..)
AS
Declaración de variables;
Declaración de constantes;
Declaración de cursores;
BEGIN
Cuerpo del subprograma PL/SQL; -----------
----------- Código
-----------
EXCEPTION
Bloque de excepciones PL/SQL;
END;
Sintaxis Oracle (Funciones)

CREATE [OR REPLACE] FUNCTION nombre


(nombre-parámetro {IN | OUT | IN OUT} tipo-de-dato, ...)
RETURN tipo-de-dato
AS
Declaración de variables;
Declaración de constantes;
BEGIN
Cuerpo del subprograma PL/SQL; -----------
----------- Código
-----------

EXCEPTION
Bloque de excepciones PL/SQL;
END;
EJERCICIO1:

Crear una función que tome un parámetro de


entrada (que podrá ser las palabras: CINCO o
TODOS) y listar de la tabla “Departments” el
respectivo número de registros que representa
cada palabra.
EJERCICIO2:
Crear un procedimiento almacenado que lea 3 parámetros:
• El primero será para identificar el operación.
• El segundo es un parámetro del id.
• El tercero es la descripción.
Estos parámetros representaran los campos de la tabla prueba:
• Si el número ingresado en el primer parámetro (es decir la operación) es
1, se deberá realizar una inserción en la tabla pruebas con los
parámetros 2 y 3.
• Si el número ingresado en el primer parámetro es 2 se debe realizar una
actualización del registro correspondiente al id enviado en el parámetro
2 y se debe actualizar la descripción del parámetro 3.
• Y finalmente si el parámetro 1 es igual a 3, se debe eliminar el registro
correspondiente al id enviado en el parámetro 2.
CREATE TABLE prueba
(
Pru_ide integer,
Pru_des varchar(40),
Constraint pk_pru_ide PRIMARY KEY(pru_ide)
);
EJERCICIO3:
Recorrer la tabla Employees y mostrar los
nombres concatenados con los ID’s.
EJERCICIO4:
Visualizar los Empleados en donde el apellido
inicie con una letra enviada por parámetro.
ELIMINAR UN PROCEDIMIENTO O FUNCIÓN

DROP function insertarMostrar (varchar,integer);

Tipo de dato de los parámetro de entrada

También podría gustarte