Sunteți pe pagina 1din 3

Ejercicios

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.

S-ar putea să vă placă și