Está en la página 1de 8

Universidad Austral de Chile Facultad de Ciencias Econmicas y Administrativas Escuela de Ingeniera Comercial

Laboratorio 04 06 Procedimientos y Funciones


Integrantes: Vanessa Gutirrez K. Josefina Lerdn F.

Profesor: Cristian Salazar C.

Ayudante: Jos Luis Carrasco

Asignatura: Sistemas de Informacin Empresarial

Valdivia, 15 de Junio 2012

1 1. Se solicita obtener mediante una funcin el resultado de la multiplicacin de 8 por 9.


Create or replace function ochopornueve return number is resultado number; begin resultado := 8*9; return resultado; end ochopornueve;

2. Se solicita obtener mediante una funcin el resultado de la divisin de 4 por 55.


Create or replace function cuatro divide cincuentaycinco return number is resultado number; begin resultado := 4/55; return resultado; end cuatrodividocincuentaycinco;

3. Investigar el uso de parmetros en una funcin, y desarrolle una funcin para cada uno de los siguientes ejercicios:
a) F(X,Y) = X+Y b) F(X,Y,Z) = (X+Y)*Z c) F(W,X,Y,Z) = W(X-1)(Y-Z)(Z+2)

a) createorreplacefunctionxy (x number,ynumber) returnnumberis


resultadonumber; begin resultado := x+y; returnresultado; endxy;

b)

create or replace function xyz (x number,y number, z number) return number is resultado number; begin resultado := (x+y)*z; return resultado; end xyz;

c)

create or replace function xyzw (x number, y number,z number, w number) return number is Resultado number; begin Resultado := w*(x-1)*(y-z)*(z+2); return Resultado; end xyzw;

4. Investigue el uso de la sentencia INTO. La sentencia select INTO sirve para crear una tabla dentro de otra. Se puede crear una nueva tabla e insertar en ella el resultado de una consulta a otra tabla. Este procedimiento se realiza de la siguiente manera: select CAMPOSNUEVATABLA into NUEVATABLA from TABLA where CONDICION;

3 Los campos que se dan como respuesta tienen las mismas caractersticas de los campos disponibles dentro de la tabla consultada; en caso de que se quiera cambiar el nombre a los campos de la nueva tabla, se deben especificar alias.

5. Se define que la morosidad excesiva es referida a cuando un estudiante no ha hecho entrega de un prstamo por un tiempo igual o superior a 20 das. Realice una funcin que entregue el N de prstamos con Morosidad Excesiva.
Create or replace function Act05 return number is Resultado number; begin Select count(p.fecha_e) Into Resultado From prestamo p where (Trunc (sysdate) - p.fecha_e) >= 20; return (Resultado); end Act05;

4 6. Desarrolle lo mismo que en el ejercicio 5, solo que esta vez el valor de 20 das pueda ser variable, esto es pasndolo como parmetro a la funcin.
create or replace function Act06 (x number) return number is Resultado number; begin Select count(p.fecha_e) Into Resultado From prestamo p where (Trunc (sysdate) - p.fecha_e) >= x; return (Resultado); end Act06;

7. Se solicita pasar por parmetro a la funcin el nmero de das a evaluar y el valor por da de atraso. Se debe entregar el valor total de las deudas adquiridas por todo el alumnado.
Create or replace function Act07 (DIAS number, DEUDAxDIA number) return number is Resultadonumber; begin Select (count(p.fecha_e)* DEUDA x DIA) Into Resultado From prestamo p where (Trunc (sysdate) - p.fecha_e) >= DIAS; return (Resultado); end Act07;

5 8. Investigue cual es la diferencia entre FUNCTION y PROCEDURE en PLSQL. Una funcin devuelve un valor determinado como resultado de ciertas operaciones realizadas en el programa interno de la funcin, mientras que en los procedimientos se pueden definir distintos parmetros de salida a travs de algn tipo de modificacin de la informacin disponible.

9. Lea los artculos de INSERT, UPDATE y DELETE que se encuentran en Definiciones al final de este documento. INSERT: se utiliza la instruccin INSERT para agregar las filas de datos en las tablas de donde proviene la informacin que obtenemos en las consultas realizadas en PL/SQL. UPDATE: esta instruccin se utiliza para actualizar o modificar los datos presentes en las tablas que se generaron anteriormente gracias a la instruccin insert, sin tener que crear nuevas tablas en caso de que se encuentren errores o se quiera modificar algn dato. DELETE: se utiliza la instruccin DELETE con el objetivo de eliminar ciertos registros de una tabla. Un ejemplo para unificar estos tres conceptos podra ser la creacin de una tabla que especifique las remuneraciones mensuales del departamento de recursos humanos de una compaa. Con INSERT, quedarn almacenados los datos de los trabajadores pertenecientes a ese departamento, especificando sus nombres y apellidos, rut y remuneraciones mensuales. Una vez que la tabla est terminada, se dan cuenta de un error ortogrfico al escribir mal el apellido de un trabajador, lo que es posible modificar a travs del comando UPDATE, donde se actualiza la informacin existente dentro de esa tabla para as arreglar el problema encontrado. Finalmente, cuando otra persona revisa la tabla, se dan cuenta que existe un trabajador que no pertenece al rea de recursos humanos sino que a la de finanzas. En este caso, se utiliza la instruccin DELETE para eliminar completamente los datos de ese trabajador de la tabla, puesto que su informacin no es relevante para el objetivo que se cre la tabla de datos.

6 10. Realice un procedimiento (PROCEDURE) que reciba como parmetro el Rut del Estudiante, el Cdigo del Libro y el Rut del Funcionario. Este procedimiento debe ingresar un prstamo, considerando que todos los libros se prestan por 3 das. (Usar INSERT y SYSDATE).

Create or replace procedure Procedimiento1 (rut_est1 in number, cod_libro1 in number, rut_func1 in numer) 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 Procedimiento1;

11. Realice un procedimiento que entregue un libro, esto es ingresando el Rut del Estudiante y el Libro respectivamente (Usar DELETE).
create or replace procedure Procediemiento2 (rut_est1 in number, rut_func1 in number, cod_libro1 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;

12. Realizar un procedimiento que realice lo mismo que el ejercicio 7, pero que se le entreguen 2 parmetros (das a evaluar y valor por da de atraso en pesos chilenos) y muestre 3 parmetros de salida (deuda total del alumnado en pesos chilenos, en euros y en dlares).

create or replace procedure act12(DIAS in number, MULTA in number, pesos out number, euros out number, dolar out number) is begin select sum (trunc(sysdate) - trunc(p.fecha_e)) * MULTA, round(sum(trunc(sysdate) - trunc(p.fecha_e)) * MULTA / 500), round(sum(trunc(sysdate) - trunc(p.fecha_e)) * MULTA / 633) into pesos, euros, dolares from prestamo p where (trunc(sysdate) - trunc(p.fecha_e)) >= DIAS end act12

También podría gustarte