PROCEDIMIENTOS ALMACENADOS EN ORACLE
SESIN 08
Mg. Orleans Moiss Glvez Tapia
Escribir un bloque PL/SQL para mostrar el Nmero de orden (posicin), nombre y semestre de todos los Alumnos ordenados por el nombre, utilizando un cursor, un bucle loop y los atributos explicados anteriormente.
Alumnos
Cursores Explcitos con parmetros
CURSOR Nombre (definicin de parmetros) IS Instruccin SQL
La siguiente instruccin crea un cursor llamado Ej1_Cur que recibe como parmetro un semestre y almacena los datos de los alumnos que pertenecen a dicho semestre.
Alumnos
Amigos
La siguiente instruccin crea un cursor llamado Ej2_Cur que recibe como parmetro dos edades y luego lo abre asignndole las edades 10 y 20.
EJERCICIO 01: Mostrar los datos de los alumnos que pertenecen a un determinado semestre. Utilizar un cursor que reciba como parmetro el semestre. Enviar como parmetro: IV
Alumnos
EJERCICIO 02: Crear un cursor llamado Amigos_Cur que recibe como parmetro dos edades y devuelve todos los amigos cuya edad se encuentra entre las ingresadas. Enviar como parmetro: 15 y 30
Amigos
EJERCICIO 03: Crear el mismo cursor anterior, llamado Amigos_Cur pero utilizando el bucle For In. Enviar como parmetro: 15 y 30
Amigos
La instruccin For In cumple las siguientes funciones en el cursor:
1. Declara una variable para manejar el cursor. 2. Abre el cursor 3. Lee todos los datos del cursor registro por registro 4. Cierra el cursor
Procedimientos almacenados en Oracle
Crear un Procedimiento Almacenado sin parmetros
Create Or Replace Procedure Nombre_Del_Procedimiento As Begin Instrucciones SQL; End;
Alumnos
Estas instrucciones crean un procedimiento almacenado llamado Datos_Pa que muestra los datos del alumno que tiene el cdigo A005 de la tabla Alumnos.
Crear un Procedimiento Almacenado sin parmetros
Create Or Replace Procedure Nombre_Del_Procedimiento As Begin Instrucciones SQL; End;
Para ejecutar un procedimiento almadenado:
Execute Nombre_Del_Procedimiento En nuestro ejemplo sera:
Execute Datos_Pa
Crear un Procedimiento Almacenado con parmetros
Create Or Replace Procedure Nombre_Del_Procedimiento (Definicin de parmetros) As Begin Instrucciones SQL; End;
Nombre Direccin Tipo Direccin: o In: Parmetro de Entrada o Out: Parmetro de Salida
Alumnos
El parmetro de entrada es el cdigo de un alumno del cual el procedimiento almacenado debe mostrar sus datos.
Crear un Procedimiento Almacenado con parmetros
Create Or Replace Procedure Nombre_Del_Procedimiento (Definicin de parmetros) As Begin Instrucciones SQL; End;
Nombre Direccin Tipo Direccin: o In: Parmetro de Entrada o Out: Parmetro de Salida
Execute Nombre_Del_Procedimiento (valores) En nuestro ejemplo sera:
Execute Muestra_Pa(A003)
Alumnos
Crear un Procedimiento Almacenado con parmetros
Create Or Replace Procedure Nombre_Del_Procedimiento (Definicin de parmetros) As Begin Instrucciones SQL; End;
Nombre Direccin Tipo Direccin: o In: Parmetro de Entrada o Out: Parmetro de Salida
Execute Nombre_Del_Procedimiento (valores) En nuestro ejemplo sera:
Execute Muestra_Pa(A003)
Alumnos
Variable tipo registro
Crear un Procedimiento Almacenado con parmetros
Create Or Replace Procedure Nombre_Del_Procedimiento (Definicin de parmetros) As Begin Instrucciones SQL; End;
Nombre Direccin Tipo Direccin: o In: Parmetro de Entrada o Out: Parmetro de Salida
Execute Nombre_Del_Procedimiento (valores) En nuestro ejemplo sera:
Execute Muestra_Pa(A003)
Alumnos
Ejercicio 04
Execute Info_Pa(M,50)
Amigos
Crear un procedimiento almacenado llamado Info_Pa que trabaja con la tabla Amigos y recibe 2 parmetros de entrada: sexo y edad. Este procedimiento debe mostrar la cantidad de amigos que tienen el sexo y edad enviados como parmetros.
Alumnos
Crear un procedimiento almacenado llamado Cuenta_Pa con el parmetro de salida Cantidad, este procedimiento devuelve (parmetro de salida) la cantidad de registros de la tabla Alumnos.
Los procedimientos que utilizan parmetros de salida normalmente se ejecutan dentro de un bloque PL/SQL, utilizando una variable donde se almacenar el valor que el procedimiento devuelve.
Ejercicio resuelto
Alumnos
Crear un procedimiento almacenado llamado E1_Pa, que dado un cdigo de alumno de alumno como parmetro de entrada, devuelva el nombre en un parmetro de salida.
Los procedimientos que utilizan parmetros de salida normalmente se ejecutan dentro de un bloque PL/SQL, utilizando una variable donde se almacenar el valor que el procedimiento devuelve.
Ejercicio 05