laboratorio 3 ayudantía sie

10
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/

Upload: roberto-avendano

Post on 07-Mar-2016

213 views

Category:

Documents


0 download

DESCRIPTION

Laboratorio 3 de ayudantía de la asignatura de Sistemas de Información Empresarial

TRANSCRIPT

Universidad Austral de ChileFacultad de Ciencias Económicas y Administrativas

Escuela Ingeniería ComercialSistemas de Información Empresarial

Laboratorio 04-06“Consultas PL SQL”

PROFESOR RESPONSABLE:Cristian Salazar Concha

AYUDANTE RESPONSABLE:José Luis Carrasco.

ALUMNOS:Sandra Barrientos Arroyohttp://sandrabarrientos.wordpress.com/

Roberto Avendaño Ampuerohttp://ravendaa.wordpress.com/

1

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:

2.- Se solicita obtener mediante una función el resultado de la división de 4 por 55.

CONSULTA

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

create or replace function cuatrodivididocincuentaycinco return number is Resultado number;begin Resultado := 4 / 55; return Resultado;end cuatrodivididocincuentaycinco;

2

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) F(X,Y,Z) = (X+Y)*Z

CONSULTA

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

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;

3

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

CONSULTA

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.

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;

4

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.

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

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 return number is entrega number;beginselect count (p.fecha_e)into entregafrom prestamo pwhere sysdate -p.fecha_e>=20;return entrega;end morosidad;

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;

5

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

8). Investigue cual es la diferencia entre FUNCTION y PROCEDURE en PLSQL.

Diferencias entre Function y ProcedureFUNCTION

Entrega un valor específico. PROCEDURE

Posee múltiples parámetros de salida.

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;

6

Consideradas como expresiones. Puede pasar información a una función a

través de la lista de parámetros.

Considerado como archivo ejecutable. Puede pasar información dentro y fuera

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

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 procedimiento (rut_est1 in number, cod_libro1 in number, rut_func1 in number)isbegin 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;

create or replace procedure Procedimiento2(rut_est1 in number, cod_libro1 in number, rut_func1 in number)isbegin 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;

7

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

Bibliografía

Paginas Web:

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

create or replace procedure Procedimiento2(Dias in number, Multa in number, Pesos out number, Euros out number, Dolares out number) isbegin 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;

8

http://plsql-tutorial.com/plsql-functions.htm http://www.techonthenet.com/oracle/procedures.php http://aprender-oracle-en-espanol.blogspot.com/2007/09/aprender-plsql-

procedimientos-y.html http://es.wikipedia.org/wiki/PL/SQL http://docstore.mik.ua/orelly/oracle/prog2/ch15_01.htm