Usuario HR Tablas pertenecientes a este mismo esquema
1. Cree y llame a la funcin Q_JOB para devolver el nombre de un puesto de
trabajo. a. Cree una funcin llamada Q_JOB para devolver el nombre de un puesto de trabajo a una variable del host. b. Compile el cdigo; cree una variable del host G_TITLE y llame a la funcin con el identificador de puesto de trabajo SA_REP. Consulte la variable del host para ver los resultados.
2. Cree una funcin denominada ANNUAL_COMP para devolver el sueldo anual
aceptando dos parmetros: el sueldo mensual del empleado y la comisin. La funcin debera tratar valores NULL. a. Cree y llame a la funcin ANNUAL_COMP, transfiriendo valores para la comisin y el sueldo mensual. Cualquiera de los dos valores que se han transferido, o los dos, puede ser NULL, pero la funcin debera seguir devolviendo el sueldo anual, que no es NULL. El sueldo anual se define por medio de la frmula bsica: (sueldo*12) + (porcentaje_comisin*sueldo*12) b. Utilice la funcin en una sentencia SELECT sobre la tabla EMPLOYEES del departamento 80. 3. Slo est permitido realizar cambios en las tablas durante las horas de oficina normales, entre las 8:45 a.m y las 5:30 p.m., de lunes a viernes. Cree un procedimiento almacenado llamado SECURE_DML que evite que la sentencia DML se ejecute fuera de las horas normales de oficina y que devuelva el mensaje, "Solo puedes hacer cambios durante horas de oficina.
4. a. Cree un disparador de sentencias en la tabla JOBS que llame al
procedimiento anterior. b. Pruebe el procedimiento modificando temporalmente las horas de dicho procedimiento e intentando insertar un nuevo registro en la tabla JOBS. (Ejemplo: reemplace 08:45 por 16:45. Este intento devuelve un mensaje de error).
5. Los empleados deberan recibir un aumento de sueldo automticamente si
se aumenta el sueldo mnimo de un puesto de trabajo. Implemente este requisito por medio de un disparador en la tabla JOBS.
6. Cree un bloque PL/SQL que calcule la comisin de un empleado determinado
basndose en el sueldo de dicho empleado. a. Si el sueldo del empleado es menor de $5.000, muestre la bonificacin del empleado como un 10% del sueldo. b. Si el sueldo del empleado est entre $5.000 y $10.000, muestre la bonificacin del empleado como un 15% del sueldo. c. Si el sueldo del empleado supera los $10.000, muestre la bonificacin del empleado como un 20% del sueldo. d. Si el sueldo del empleado es NULL, muestre la bonificacin del empleado como 0. e. Pruebe el bloque PL/SQL en cada caso utilizando los siguientes casos de prueba y compruebe cada bonificacin.
7. Cree un bloque annimo para hacer que aparezca la frase Mi bloque PL/SQL funciona en la pantalla.
8. En un bucle, utilice un cursor para recuperar el nmero del departamento y
el nombre del departamento de la tabla DEPARTMENTS de aquellos departamentos cuyo identificador (DEPARTMENT_ID) sea menor de 100. Transfiera el nmero del departamento a otro cursor para recuperar de la tabla EMPLOYEES los apellidos, los puestos, las fechas de contratacin y los sueldos de los empleados cuyo identificador (EMPLOYEE_ID) sea menor de 120 y que trabajen en ese departamento.