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.