Está en la página 1de 21

PL SQL

Lic Cristian Mercado Quispe


Base de Datos II

Lic. Cristian Mercado Quispe - UPEA


INTRODUCCIÓN
 Los bloques de PL/SQL pueden ser bloques
anónimos(scripts) y subprogramas.

 Los subprogramas pueden recibir parámetros y


pueden ser:
• Procedimientos almacenados
• Funciones
• Triggers

Lic. Cristian Mercado Quispe - UPEA


Procedimientos Almacenados
 Es un subprograma que ejecuta una acción
específica.
A diferencia de los bloques anónimos, un
procedimiento almacenado puede ser
compilado y almacenado en la base de datos.
 Un procedimiento tiene un nombre, un
conjunto de parámetros y un bloque de código.
No tiene que devolver ningún valor.

Lic. Cristian Mercado Quispe - UPEA


SINTAXIS
CREATE [OR REPLACE ]PROCEDURE <nombre_proc>
( <param1><IN OUT> <tipo>, <param2><IN OUT> <tipo>..)
IS
-- declaración de variables
BEGIN
-- sentencias
[EXCEPTION]
-- control de excepción
END;

Lic. Cristian Mercado Quispe - UPEA


SINTAXIS
El uso de OR REPLACE permite sobre escribir
un procedimiento existente.
Después de PROCEDURE … IS viene la parte
declarativa
Al especificar el tipo de dato de los parámetros
no se debe especificar la longitud del mismo.

Lic. Cristian Mercado Quispe - UPEA


El procedimiento puede tener 0 o muchos
parámetros.

Los parámetros pueden ser de entrada IN o de


salida OUT o ambos IN OUT.

El valor por defecto es IN.

Lic. Cristian Mercado Quispe - UPEA


Ejemplo1
Crear un procedimiento almacenado
denominado “busca_emp1”que reciba como
parámetro de entrada el id del empleado y
muestre los datos del empleado. Ejemplo si el id
= 100, mostrar:
Id: 100
nombre: Steven King
Salario: 24000
Fecha contratación: 17/06/2003
Lic. Cristian Mercado Quispe - UPEA
Ejemplo2
Crear un procedimiento almacenado
denominado “busca_emp2”que reciba como
parámetro de entrada el id del empleado y
muestre los datos del empleado. Ejemplo si el id
= 201, mostrar:
Id: 201
nombre: MICHAEL HARTSTEIN
Departamento: MARKETING
Cargo: MARKETING MANAGER
Lic. Cristian Mercado Quispe - UPEA
 Modificar el ejemplo anterior para validar el id
del empleado, si el id ingresado no existe, se
debe mostrar “NO EXISTE EL
EMPLEADO….”

Lic. Cristian Mercado Quispe - UPEA


Ejemplo 3
 Crear un procedimiento almacenado
denominado “obtiene_cantidad” que reciba
como parámetro de entrada el id del
departamento y devuelva como parámetro de
salida la cantidad de empleados que tiene.

Lic. Cristian Mercado Quispe - UPEA


FUNCIONES
 Una función puede tener varios parámetros de
entrada pero devuelve un solo valor.
 Una función debe tener una cláusula de retorno
en la sección ejecutable de la función.
 El tipo de dato devuelto debe ser declarado en
el encabezado de la función.

Lic. Cristian Mercado Quispe - UPEA


SINTAXIS DE FUNCIONES
CREATE OR REPLACE FUNCTION
nombre_función( [param1 IN tipo1, param2 IN tipo2,….])
RETURN tipo_de_dato
IS
var_retornar tipo_dato;
BEGIN
-- ejecución y asignación
RETURN var_retornar;
[EXCEPCTION]
-- Control de excepciones
END;
Lic. Cristian Mercado Quispe - UPEA
FUNCIONES
Ejemplo, Crear una función denominada
f_devuelve_nombre, que reciba como parámetro
de entrada el id del empleado y devuelva el
nombre del empleado.

Lic. Cristian Mercado Quispe - UPEA


FUNCIONES
 Ejemplo
 Crear una función denominada
f_devuelve_cantidad_emp que tenga como
parámetro de entrada el id de un departamento
y devuelva la cantidad de empleados que tiene
dicho departamento.

Lic. Cristian Mercado Quispe - UPEA


CREAR LAS SIGUIENTES TABLAS
P_ESTUDIANTE
PK ID_ESTUDIANTE
NOMBRES
APELLIDOS P_CURSA
FECHA_NAC
UK CORREO_ELEC PK ID_CURSA
FK ID_ESTUDIANTE
FK ID_MATERIA
NOTA
GESTION
AÑO
P_MATERIA
PK ID_MATERIA
NOMBRE

Lic. Cristian Mercado Quispe - UPEA


EJERCICIOS
 Crear un procedimiento almacenado
denominado “adiciona_estudiante()”, Luego
utilizar el procedimiento para registrar los
siguientes estudiantes:
ID_ESTUD. NOMBRE APELLIDOS FECHA_NAC CORREO_E
100 JUAN PEREZ 1/1/1995 JP@GMAIL.COM
101 MARIA GOMEZ 31/1/1990 MG@GMAIL.COM
102 LUIS CALLE 15/12/1988 LC@GMAIL.COM

Lic. Cristian Mercado Quispe - UPEA


EJERCICIOS
Crear un procedimiento almacenado denominado
“adiciona_materia()”, Luego utilizar el
procedimiento para registrar las siguientes
materias:
ID_MATERIA NOMBRE
10 CALCULO1
20 ALGEBRA1
30 INTRODUCCIÓN A LA
PROGRAMACIÓN

Lic. Cristian Mercado Quispe - UPEA


EJERCICIOS
 Crear un procedimiento almacenado
denominado “ASIGNA_MATERIA()” que
permita registrar la asignación de una materia a
un estudiante, el procedimiento debe tener
como parámetros de entrada el id del
estudiante, el id de la materia, una vez hecha la
asignación, se debe mostrar “ESTUDIANTE
ASIGNADO A MATERIA”

Lic. Cristian Mercado Quispe - UPEA


EJERCICIOS
 Utilizar el procedimiento almacenado ASIGNA
MATERIA para registrar la siguiente
información
ID_CURSA ID_EST ID_MAT NOTA SEMESTRE GESTION
1 100 10 NULL I 2017
2 101 20 NULL I 2017
3 101 30 NULL I 2017
4 102 10 NULL I 2017
5 102 30 NULL I 2017

Lic. Cristian Mercado Quispe - UPEA


EJERCICIOS
Crear un procedimiento almacenado denominado
“reporte_estudiante” que reciba como parámetro
el id del estudiante, la gestión, el año y
devuelva como parámetro de salida la cantidad
de materias que esta cursando durante el periodo
señalado

Lic. Cristian Mercado Quispe - UPEA


EJERCICIOS
 Crear un procedimiento almacenado
denominado “reporte_materia” que reciba
como parámetro de entrada el id de la materia,
la gestión, el año y retorne como parámetro de
salida la cantidad de estudiantes que tiene.

Lic. Cristian Mercado Quispe - UPEA

También podría gustarte