lab 04 06

17
Alumnos: Alfredo Torres Alejandro Vesperinas Profesor: Cristian Salazar C. Ayudante: José Luis Carrasco V. UNIVERSIDAD AUSTRAL DE CHILE FACULTAD DE CIENCIAS ECONÓMICAS Y ADMINISTRATIVAS Laboratorio 3 Consultas PL/SQL-Oracle Sistemas de Información Empresarial (ADMI273) 15 de Junio de 2012

Upload: alejomv88

Post on 23-Jul-2015

329 views

Category:

Documents


0 download

TRANSCRIPT

Alumnos: Alfredo Torres Alejandro Vesperinas Profesor: Cristian Salazar C. Ayudante: José Luis Carrasco V.

UNIVERSIDAD AUSTRAL DE CHILE FACULTAD DE CIENCIAS ECONÓMICAS Y ADMINISTRATIVAS

Laboratorio 3 Consultas PL/SQL-Oracle

S i s t e m a s d e I n f o r m a c i ó n E m p r e s a r i a l

( A D M I 2 7 3 )

15 de Junio de 2012

Actividades:

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

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

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

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

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

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

La cláusula del Oracle PL/SQL “INTO” se usa en bloques PL/SQL para obtener los

resultados de la consulta SELECT en una variable local. Las columnas seleccionadas en la

consulta deben ser devueltas en las variables locales, que deben ser compatibles con las

columnas de tipo de datos. También se utiliza en el archivo ejecutable (BEGIN...END)

sección de un bloque PL/SQL.

En el uso por defecto la cláusula [SELECT...INTO], la sentencia recupera una o

más columnas de una sola fila. En el uso a granel [SELECT...BULK COLLECT INTO], la

sentencia recupera un conjunto de resultados completo en una sola operación.

Por defecto, la declaración [SELECT...INTO] sólo puede devolver una sola fila. Si

se devuelve más de una fila, PL/SQL produce la excepción predefinida

TOO_MANY_ROWS (SQL Error-02112).

Ejemplo de uso:

DECLARE

L_EMPNO NUMBER;

L_ENAME VARCHAR2(1000);

L_DEPTNO NUMBER;

L_SALARY NUMBER;

BEGIN

SELECT EMPNO, ENAME, DEPTNO, SALARY

INTO L_EMPNO, L_ENAME, L_DEPTNO, L_SALARY

FROM EMPLOYEES

WHERE EMPNO=100;

END;

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.

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.

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.

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

La única diferencia entre procedimientos y funciones en PL/SQL es que las

funciones siempre devuelven un valor único, mientras que los procedimientos no devuelven

un valor a la persona que llama.

Ejemplo:

CREATE OR REPLACE PROCEDURE my_proc

(p_name IN VARCHAR2 := 'John') as begin ... end

CREATE OR REPLACE FUNCTION my_func

(p_name IN VARCHAR2 := 'John') return varchar2 as begin ... end

Observe cómo la función tiene una cláusula de retorno entre la lista de parámetros y la

palabra clave "como". Esto significa que se espera que tenga la última instrucción dentro

del cuerpo de la función de leer algo como:

return(my_varchar2_local_variable);

Donde my_varchar2_local_variable es cierto varchar2 que debería ser devuelto por esta

función.

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)

11.- Realice un procedimiento que entregue un libro, esto es ingresando el Rut del

Estudiante y el Libro respectivamente (Usar DELETE).

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