Issuu on Google+

Universidad Austral de Chile Facultad de Ciencias Económicas y Administrativas Escuela Ingeniería Comercial Sistemas de Información Empresarial

Laboratorio 04-06 “Consultas PL SQL”

PROFESOR RESPONSABLE: Cristian Salazar Concha AYUDANTE RESPONSABLE: José Luis Carrasco. ALUMNOS: Sandra Barrientos Arroyo http://sandrabarrientos.wordpress.com/ Roberto Avendaño Ampuero http://ravendaa.wordpress.com/


2

Valdivia, 15 de junio de 2012 1.- Se solicita obtener mediante una funci贸n el resultado de la multiplicaci贸n de 8 por 9. CONSULTA:

create or replace function ochopornueve return number is Resultado number; begin Resultado := 8 * 9; return Resultado; end ochopornueve;

2.- Se solicita obtener mediante una funci贸n el resultado de la divisi贸n de 4 por 55. CONSULTA create or replace function cuatrodivididocincuentaycinco return number is Resultado number; begin Resultado := 4 / 55; return Resultado; end cuatrodivididocincuentaycinco;


3

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

CONSULTA

b)

create or replace function AXY(valor1 in number, Valor2 in number) return number is Result number; begin Result :=valor1 + Valor2; return Result; end AXY;

F(X,Y,Z) = (X+Y)*Z

CONSULTA

create or replace function AXYZ(valor1 in number, Valor2 in number, valor3 in number) return number is Result number; begin Result :=(valor1 + Valor2)*valor3; return Result; end AXYZ;


4

c) F(W,X,Y,Z) = W(X-1)(Y-Z)(Z+2) CONSULTA

create or replace function AWXYZ(valor1 in number, valor2 in number, valor3 in number, valor4 in number) return number is Result number; begin Result :=(valor1*(valor2 - 1)*(valor3 - valor4)*(valor4 + 2)); return Result; end AWXYZ;


5

4) Investigue el uso de la sentencia “INTO”.

La sentencia INTO es integrada a la función SELECT, teniendo por fin la creación de una nueva tabla en el grupo de archivos predeterminados e inserta las filas resultantes de la consulta en ella, dicha clausula es usada para recuperar un registro de una fila o un conjunto de columnas desde la base de datos al hacer uso de múltiples variables.

Se producen excepciones cuando al colocar la clausula en cuestión, se intenta asignar un valor en cierta variable que no corresponde al tipo de dato, o posee un tamaño inferior al que debería tomar dicha variable.


6 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. CONSULTA

create or replace function morosidad return number is entrega number; begin select count (p.fecha_e) into entrega from prestamo p

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. CONSULTA

create or replace function Morosidad(valor1 in number) return number is Result number; begin select count(p.fecha_e) as Cant_Morosos into Result from prestamo p where (trunc(sysdate) - trunc(p.fecha_e)) >= Valor1;


7

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. CONSULTA

create or replace function morosidad1 (DIAS number, DEUDAxDIA number) return number is Resultado number; begin Select (count(p.fecha_e)*DEUDAxDIA) Into Resultado From prestamo p where (Trunc (sysdate) - p.fecha_e) >= DIAS; return (Resultado); end morosidad1;

8). Investigue cual es la diferencia entre FUNCTION y PROCEDURE en PLSQL. Diferencias entre Function y Procedure FUNCTION PROCEDURE  Entrega un valor específico.  Posee múltiples parámetros de salida.  Consideradas como expresiones.  Considerado como archivo ejecutable.  Puede pasar información a una función a  Puede pasar información dentro y fuera


8 través de la lista de parámetros.

de un procedimiento a través de la lista de parámetros.

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) CONSULTA

create or replace procedure procedimiento (rut_est1 in number, cod_libro1 in number, rut_func1 in number)is begin insert into prestamo (rut_est, rut_func, cod_libro, fecha_p, fecha_e) values (rut_est1, rut_func1, cod_libro1, trunc(Sysdate), (trunc(sysdate)+3)); commit; end procedimiento;

11). Realice un procedimiento que entregue un libro, esto es ingresando el Rut del Estudiante y el Libro respectivamente (Usar DELETE). CONSULTA

create or replace procedure Procedimiento2(rut_est1 in number, cod_libro1 in number, rut_func1 in number)is begin delete from prestamo p where p.rut_est = rut_est1 and p.rut_func = rut_func1 and p.cod_libro = cod_libro1; commit; end Procedimiento2;


9

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). CONSULTA

create or replace procedure Procedimiento2(Dias in number, Multa in number, Pesos out number, Euros out number, Dolares out number) is begin select sum(trunc(sysdate) - trunc(p.fecha_e)) * Multa, round(sum(trunc(sysdate) - trunc(p.fecha_e)) * Multa/634), round(sum(trunc(sysdate) - trunc(p.fecha_e)) * Multa/500) into Pesos, Euros, Dolares from prestamo p where (trunc(sysdate) - trunc(p.fecha_e)) >= Dias; end Procedimiento2;

Bibliografía Paginas Web: •

http://dba-oracle.com/t_pl_sql_plsql_select_into_clause.htm

http://plsql-tutorial.com/plsql-functions.htm

http://www.techonthenet.com/oracle/procedures.php


10 •

http://aprender-oracle-en-espanol.blogspot.com/2007/09/aprender-plsqlprocedimientos-y.html

http://es.wikipedia.org/wiki/PL/SQL

http://docstore.mik.ua/orelly/oracle/prog2/ch15_01.htm


Laboratorio 3 Ayudantía SIE