La empresa sostenible: Principales Características, Barreras para su Avance y...
Laboratorio: Funciones y Procedimientos PL/SQL
1. LABORATORIO:
Procedimientos y Funciones
Integrantes: Febe Moena
Andrea Uribe
Profesor: Cristian Salazar
Profesor Ayudante: José Luis Carrasco
Curso: ADMI 273
Valdivia 15 de Junio, 2012
2. Ejemplo de una función, llamada “dosmasdos”
Testear. El resultado de la función es:
LABORATORIO:
1.- Se solicita obtener mediante una función el resultado de la multiplicación de 8 por 9.
3. Testear. El resultado de la función es:
2.- Se solicita obtener mediante una función el resultado de la división de 4 por 55.
Testear. El resultado de la función es:
4. 3.- Investigar el uso de parámetros en una función, y desarrolle una función para cada uno de los
siguientes ejercicios:
a)F(X,Y) = X+Y
Testear. El resultado de la función es:
b) F(X,Y,Z) = (X+Y)*Z
5. Testear. El resultado de la función es:
c) F(W,X,Y,Z) = W(X-1)(Y-Z)(Z+2)
Testear. El resultado de la función es:
6. 4.- Investigue el uso de la sentencia “INTO”.
Para realizar consultas puntuales que devuelven un único registro, se utiliza INTO a continuación
de SELECT.
Si la consulta no devueve ningún registro, se produce la excepción NO_DATA_FOUND.
Si la consulta devuelve más de un registro, se produce la excepción TOO_MANY_ROWS.
5.- Se define que la morosidad excesiva es referida a cuando un estudiante no ha hecho entrega
de un préstamo por un tiempo igual o superior a 20 días. Realice una función que entregue el N°
de préstamos con Morosidad Excesiva.
Testear. El resultado de la función es:
7. 6.- Desarrolle lo mismo que en el ejercicio 5, solo que esta vez el valor de 20 días pueda ser
variable, esto es pasándolo como parámetro a la función.
Testear. El resultado de la función es:
8. 7.- Se solicita pasar por parámetro a la función el número de días a evaluar y el valor por día de
atraso. Se debe entregar el valor total de las deudas adquiridas por todo el alumnado.
Testear. El resultado de la función es:
8.- Investigue cual es la diferencia entre FUNCTION y PROCEDURE en PLSQL.
Las PL-SQL Function en Oracle (Función) son un conjunto de instrucciones que tienen un objetivo
en particular y permiten retornar un resultado, pueden ser ejecutadas desde cualquier parte del
código. Las PL-SQL Function en Oracle a diferencia de los PL-SQL Procedures en Oracle siempre
devuelve un valor como respuesta.
Para determinar si debes utilizar una PL-SQL Function en Oracle tienes que responder de forma
afirmativa a las siguientes preguntas:
¿Lo que voy a desarrollar será ocupado en otros procesos?
¿Debo obtener siempre un solo resultado?
9. Por ejemplo, si determinas que en varios procesos que debes construir para tu aplicación, siempre
necesitas obtener la edad de un empleado para poder controlar ciertas acciones, las respuestas a
las preguntas 1 y 2 es SI, por lo tanto debes construir una PL-SQL Function en Oracle como la
siguiente:
/* PL-SQL Function en Oracle */
Function Fnc_Empleado_Edad(p_Rut In Number) Return Number Is
l_Edad Number;
Begin
Select emp.edadIntol_Edad From T_EmpleadosEmp Where Emp.Rut = p_Rut;
Return l_Edad;
Exception
When No_Data_Found Then Return 0;
EndFnc_Empleado_Edad;
/* PL-SQL Function en Oracle */
Los PL-SQL Procedures en Oracle (Procedimiento) son un conjunto de etapas, métodos o
definiciones paso a paso, que se utilizan para resolver un problema. Es un subprograma o parte de
un programa principal que en Oracle se denominan PL-SQL Packages en Oracle.
Para determinar si debes construir PL-SQL Procedures en Oracle tienes que responder de forma
afirmativa a las siguientes preguntas:
¿El proceso debe recibir Parámetros de Entrada?
¿El proceso debe retornar varios Parámetros de Salida?
Por ejemplo, si necesitas un proceso que te permita obtener los datos de un empleado en
particular, las respuestas a las preguntas 1 y 2 es SI, por lo tanto debes construir un Procedimiento
(PL-SQL Procedures en Oracle) como el siguiente:
/* PL-SQL Procedures en Oracle */
Procedure Prc_Infor_Empleado(
p_Rut In Number,
p_Nombre Out Varchar2,
p_Direccion Out Varchar2,
p_Edad Out Number,
p_Id_Departamento Out Number) Is
Begin
Selectemp.nombre, emp.direccion, emp.edad, emp.id_departamento
Intop_Nombre, p_Direccion, p_Edad, p_Id_Departamento
From T_EmpleadosEmp
Where Emp.Rut = p_Rut;
Exception
When No_Data_Found Then p_Nombre:= ‘Empleado no existe’;
EndPrc_Infor_Empleado;
/* PL-SQL Procedures en Oracle */
10. 9.- Lea los artículos de INSERT, UPDATE y DELETE que se encuentran en Definiciones al final de
este documento.
10.- Realice un procedimiento (PROCEDURE) que reciba como parámetro el Rut del Estudiante,
el Código del Libro y el Rut del Funcionario. Este procedimiento debe ingresar un préstamo,
considerando que todos los libros se prestan por 3 días. (Usar INSERT y SYSDATE)
Testear. El resultado del procedimiento es:
11. El resultado se observa en la tabla de préstamos, en donde se elimina los datos ingresados en el
Test:
11.- Realice un procedimiento que entregue un libro, esto es ingresando el Rut del Estudiante y
el Libro respectivamente (Usar DELETE).
Testear. El resultado del procedimiento es:
12. El resultado se observa en la tabla de préstamos, en donde se elimina los datos ingresados en el
Test:
12.- Realizar un procedimiento que realice lo mismo que el ejercicio 7, pero que se le entreguen
2 parámetros (días a evaluar y valor por día de atraso en pesos chilenos) y muestre 3 parámetros
de salida (deuda total del alumnado en pesos chilenos, en euros y en dólares).