ayudantia 4 de junio

15
Universidad Austral de Chile Facultad de Ciencias Económicas y Administrativas Instituto de Administración Escuela de Ingeniería Comercial ADMI 273 Ayudantía 4 de Junio Curso: Sistema de Información Empresarial Profesor: Cristian Salazar Ayudante: Jose Luis Carrasco Integrante: Carlos Mancilla Karina Espinoza E. Valdivia, 16 de Mayo de 2012.

Upload: carlos-mancilla

Post on 12-Jul-2015

413 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Ayudantia 4 de junio

Universidad Austral de Chile

Facultad de Ciencias Económicas y Administrativas

Instituto de Administración

Escuela de Ingeniería Comercial

ADMI 273

Ayudantía 4 de Junio

Curso: Sistema de Información Empresarial

Profesor: Cristian Salazar

Ayudante: Jose Luis Carrasco

Integrante:

Carlos Mancilla

Karina Espinoza E.

Valdivia, 16 de Mayo de 2012.

Page 2: Ayudantia 4 de junio

Ejemplo ………………………….

create or replace function dosmasdos return number is

Resultado number;

begin

Resultado := 2+2;

return Resultado;

end dosmasdos;

Page 3: Ayudantia 4 de junio

1.- Se solicita obtener mediante una función el resultado de la multiplicación de 8 por 9.

create or replace function uno return number is

Resultado number;

begin

Resultado := 8*9;

return Resultado;

end uno;

Page 4: Ayudantia 4 de junio

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

create or replace function dos return number is

Resultado number;

begin

Resultado := 4*55;

return Resultado;

end dos;

Page 5: Ayudantia 4 de junio

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

create or replace function FXY(valor1 in number, Valor2 in number) return number is

Result number;

begin

Result := valor1 + Valor2;

return Result;

Page 6: Ayudantia 4 de junio

end FXY;

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

create or replace function FXYZ(valor1 in number, Valor2 in number, Valor3 in number) return

number is

Result number;

begin

Result := (valor1 + Valor2)* Valor3;

return Result;

end FXYZ;

Page 7: Ayudantia 4 de junio

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

create or replace function FWXYZ(valor1 in number, Valor2 in number, Valor3 in number,

Valor4 in number) return number is

Result number;

begin

Result := Valor4 * (valor1 - 1 )*(Valor2 - Valor3) * (Valor3 + 2);

return Result;

end FWXYZ;

Page 8: Ayudantia 4 de junio

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

SELECT INTO crea una nueva tabla en el grupo de archivos predeterminados e inserta las

filas resultantes de la consulta en ella.

La New_table especifica el nombre de una nueva tabla que se va a crear en función de las

columnas de la lista de selección y de las filas elegidas desde el origen de datos. Este

formato se determina mediante la evaluación de las expresiones de la lista de selección. Las

columnas se crean en el orden que especifica la lista de selección. Cada columna de tiene

el mismo nombre, tipo de datos, nulabilidad y valor que la expresión correspondiente de la

lista de selección.

Page 9: Ayudantia 4 de junio

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 prestamos con Morosidad Excesiva.

create or replace function Contador return number is Result number;

begin

select count(trunc(sysdate) - trunc(p.fecha_e)) as Mexcesivos

into Result

from prestamo p

where (trunc(sysdate) - trunc(p.fecha_e)) >= 20;

return result;

end Contador;

Page 10: Ayudantia 4 de junio

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.

create or replace function Contador1 (Valor1 in number) return number is Result number;

begin

select count(trunc(sysdate) - trunc(p.fecha_e)) as Mexcesivos

into Result

from prestamo p

where (trunc(sysdate) - trunc(p.fecha_e)) >= Valor1;

return result;

end Contador1;

Page 11: Ayudantia 4 de junio

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.

create or replace function Contador2 (DIAS in number,MULTA in number) return number is

Result number;

begin

select sum(trunc(sysdate) - trunc(p.fecha_e))* MULTA as Mexcesivos

into Result

from prestamo p

where (trunc(sysdate) - trunc(p.fecha_e)) >= DIAS;

return Result;

end Contador2;

Page 12: Ayudantia 4 de junio

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

Conceptualmente, quizá la mayor diferencia sea que un procedimiento almacenado está orientado a cubrir una funcionalidad completa y una función está orientada para cubrir una parte. Así, el procedimiento se ejecuta independientemente y la función se llama desde una consulta que puede involucrar más tablas, funciones, etc., siendo esta seguramente su principal ventaja. Otra diferencia está en que una función siempre devuelve algo (una tabla), mientras que un procedimiento almacenado puede devolver ambas cosas o ninguna. Una función tiene ciertas limitaciones (bueno, bastantes), operaciones que no puedes realizar, mientras que en un procedimiento almacenado puedes hacer casi cualquier cosa. 9.- Lea los artículos de INSERT, UPDATE y DELETE que se encuentran en Definiciones al final de

este documento.

Leidoss………………

Page 13: Ayudantia 4 de junio

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)

create or replace procedure prueba (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 prueba;

Page 14: Ayudantia 4 de junio

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 entrega (rut_est1 in number, cod_libro1 in number, x out number

) is

begin

delete from PRESTAMO

where rut_est1 = rut_est

and cod_libro1 = cod_libro;

commit;

x:=1;

end entrega;

Page 15: Ayudantia 4 de junio

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

create or replace procedure Contador18 (DIAS in number,

MULTA in number,

pesos out number,

euro out number,

dollar 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 / 700)

into pesos, euro, dollar

from prestamo p

where (trunc(sysdate) - trunc(p.fecha_e)) >= DIAS;

--aqui calcule atrasos en pesos dollar y euro

end Contador18;