You are on page 1of 12

TALLER PL/SQL

ESQUEMA PARA TRABAJAR LOS EJERCICIOS DEL TALLER

APENDICE D: DESCRIPCION DE LAS TABLAS


A continuacin se presenta la descripcin de las tablas del esquema HR, junto
con los datos que contiene cada una.

ENUNCIADO EJERCICIOS CURSORES


1. Disear un cursor para listar los cdigos y nombres de departamentos.
Para cada departamento, debe listar los empleados que trabajan all.
Presentar al final de la impresin de los empleados, un total de salarios y
un conteo de los empleados que all laboran. Utilizar parmetros en el
cursor empleados.
2. Realizar un programa que recorra a travs de un cursor la tabla
empleados y altere el sueldo, sumndole 1. Utilizar la sentencia FOR
UPDATE

ENUNCIADO EJERCICIOS PROCEDIMIENTOS


1.- Crear e invocar el procedimiento ADD_PROD y considerar los resultados.
a. Crear un procedimiento llamado ADD_PROD para insertar un nuevo producto
en la tabla PRODUCT. Proporcionar el nmero de producto y la descripcin del
producto, el uso de dos parmetros.
b. Compile el cdigo, invoque el procedimiento y luego consultar la tabla
PRODUCT para ver los resultados.
c. Invoque el procedimiento de nuevo, pasando un ProdID de 100.860 y una
descripcin del producto de su eleccin. Qu sucede y por qu?
2.- Crear un procedimiento llamado UPD_PROD que modifica un producto en la
tabla PRODUCT.
a. Crear un procedimiento llamado UPD_PROD para actualizar la descripcin del
producto. Proporcionar el nmero de producto y una nueva descripcin,
utilizando dos parmetros. Incluir el manejo de excepciones es necesario si no
se produce la actualizacin.
b. Compile el cdigo, invocar el procedimiento, y luego consultar la tabla de
productos para ver los resultados. Tambin puedes ver el manejo de
excepciones al tratar de actualizar un producto que no existe.
3.- Crear un procedimiento llamado DEL_PROD eliminar un producto de la tabla
PRODUCT.
a. Crear un procedimiento llamado DEL_PROD para eliminar un producto de la
tabla PRODUCTO. Incluir el manejo de excepciones, es necesario si se elimina
ningn producto.
b. Compile el cdigo, invocar el procedimiento, y consultar la tabla PRODUCT
para ver el resultado. Adems, verifique el manejo de excepciones al tratar de
eliminar un producto que no existe.
4.- Crear un procedimiento llamado QUERY_EMP para consultar la tabla EMP,
recuperar el ttulo de sueldo y trabajo para un empleado cuando se les
proporciona el nmero de empleado.
a. Cree un procedimiento que devuelve un valor de las SAL y Job columnas
para un empleado especfico (uso EMPNO).
Utilice variables del lenguaje principal para los dos parmetros OUT.
b. Compile el cdigo, invocar el procedimiento, y mostrar el ttulo de sueldo y
trabajo para el empleado 7839.
c. Invoque el procedimiento de nuevo, pasando un EMPNO de 9898. Qu
sucede y por qu?

ENUNCIADO EJERCICIOS FUNCIONES


1. Crear e invocar la funcin Q_PROD para devolver una descripcin del
producto.
a. Crear una funcin llamada Q_PROD para devolver una descripcin del
producto a una variable del sistema principal.
b. Compile el cdigo, invocar la funcin, y luego consultar la variable del
sistema principal para ver el resultado.
2.- Cree el ANNUAL_COMP funcin almacenada para devolver un salario anual
cuando se pasa sueldo y comisin mensual de un empleado. La funcin debe
abordar valores NULL.
a. Crear e invocar la funcin el ANNUAL_COMP, pasando como parmetros los
valores de salario mensual y la comisin. Uno o ambos valores pasados podran
ser NULL, pero la funcin an debe devolver un salario anual, que no es nulo. El
salario anual se define por la frmula bsica:
(sal * 12) + comm
b. Utilice la funcin almacenada en una sentencia SELECT en la tabla EMP.
3.- Crear un procedimiento, NEW_EMP, para insertar un nuevo empleado en la
tabla EMP. El procedimiento debe contener una llamada a la funcin
VALID_DEPTNO para comprobar si existe o no el nmero de departamento
especificado para el nuevo empleado en la tabla DEPT.
a. Crear una funcin llamada VALID_DEPTNO para validar un nmero de
departamento especificado. La funcin debe devolver un valor booleano
(BOOLEAN).
b. Cree el procedimiento NEW_EMP aadir un empleado de la tabla EMP. Un
nuevo rcord se debe agregar a EMP si la funcin devuelve TRUE. Si la
funcin devuelve FALSE, el procedimiento debera alertar al usuario con un
mensaje apropiado.
Definir los valores por defecto para la mayora de los parmetros. La
comisin por omisin es 0, el salario por defecto es 1000, el nmero de
departamento por defecto es 30, el trabajo por defecto es VENDEDOR
(SALESMAN) y el nmero gestor por defecto es 7839. Para obtener el
nmero de identificacin del empleado, utilice la secuencia SEQ_EMPNO.
Crear una secuencia en una sesin de SQL * Plus, ejecutando el script
cre_seq.sql.
c. Pruebe su procedimiento NEW_EMP aadiendo un nuevo empleado
llamado HARRIS al departamento 99. Todos los dems parmetros
por defecto. Cul fue el resultado?
d. Pruebe su procedimiento NEW_EMP aadiendo un nuevo empleado
llamado HARRIS al departamento 30. Todos los dems parmetros
por defecto. Cul fue el resultado?

EJERCICIOS TRIGGERS (DISPARADORES)


1. Cambiar los datos slo se permitir en las mesas durante las horas normales
de oficina de 8:45 de la maana hasta las 5:30 de la tarde, de lunes a viernes.
a. Crear un procedimiento almacenado llamado SECURE_DML que impide que
la sentencia DML se ejecute fuera de las horas normales de oficina,
devolviendo el mensaje:
"Slo se puede hacer cambios de datos durante las horas normales de oficina."
2.- Crear un disparador declaracin en la tabla PRODUCT que llama al
procedimiento anterior.
a. Pon a prueba el procedimiento al modificar temporalmente las horas en el
procedimiento y tratar de insertar un nuevo registro en la tabla PRODUCT.
Despus de la prueba, restablezca las horas de procedimiento como se
especifica en el paso 1.

You might also like