Practica Leccion 12
Practica Leccion 12
Practica Leccion 12
2008
Prá ctica 12.
1. Copia y modifica el código del paquete EMP_PKG que se creó en la Práctica 11, Ejercicio 2, y
sobrecargue el procedimiento ADD_EMPLOYEE.
3. Debido a que la compañía no actualiza con frecuencia los datos departamentales, debe mejorar el
desempeño del paquete EMP_PKG agregando un procedimiento público INIT_DEPARTMENTS para
poblar un tabla PL/SQL privada que valide los ID de departamentos. Modifique la función VALID_DEPTID
para que use el contenido de la tabla privada PL/SQL para validar los valores de los departamentos.
Práctica 12
1
Oracle Database 10g: Program with PL/SQL
2008
valid_departments que contenga valores de tipo BOOLEAN. El valor del ID del
departamento se usará como valor del índice del registro que se creará en la tabla index-by
y asigne el valor TRUE que indicará la presencia del departamento. Declare la variable
valid_departments y la definición de su tipo de dato boolean_tabtype al inicio del paquete.
c. En el cuerpo del paquete, cree un bloque de inicialización que llame al procedimiento
INIT_DEPARTMENTS que inicialice la tabla. Salve y compile.
4. Cambie el proceso de validación VALID_DEPTID para use la tabla privada PL/SQL con los IDs de los
departamentos.
a. Modifique VALID_DEPTID para realizar la validación usando la tabla PL/SQL que contiene
los IDs de los departamentos. Guarde y compile.
b. Pruebe el código invocando el procedimiento ADD_EMPLOYEE con los valores ‘James
Bond’ y 15. ¿Qué sucede?
c. Agregue un nuevo departamento con ID igual a 15 y nombre ‘Security’. Haga permanentes
los cambios.
d. Pruebe el código, invocando de nuevo ADD_EMPLOYEE usando como nombre ‘James
Bond’ y el departamento 15. ¿Qué sucede?
e. Ejecute el procedimiento EMP_PKG.INIT_DEPARTMENTS para que se actualice la tabla
PL/SQL interna con el último valor de departamento.
f. Invoque el procedimiento ADD_EMPLOYEE con los valores ‘James Bond’ para el nombre y
15 para el departamento. ¿Qué sucede?
g. Elimine el empleado ‘James Bond’ y el departamento 15 de sus respectivas tablas, haga
permanentes los cambios, y refresque los datos de los departamentos invocando el
procedimiento EMP_PKG.INIT_DEPARTMENTS.
5. Reorganice los subprogramas en la especificación y cuerpo del paquete de tal modo que estén
ordenados alfabéticamente.
Práctica 12
1
Oracle Database 10g: Program with PL/SQL
2008
a. Consulte el diccionario de datos para ver el código fuente del cuerpo del paquete
EMP_PKG.
b. Inicie una ventana de comando y ejecute el comando WRAP en la línea de comando para
encapsular el cuerpo del paquete EMP_PKG. Al nombre del archivo de salida agréguele la
extensión *.plb.
Tip: Copie el archivo (generado en el ejercicio 5c) que contiene el cuerpo del paquete a un
archivo llamado emp_pkb_b.sql.
c. En iSQL*Plus, cargue y ejecute el archivo *.plb que contiene el código fuente encapsulado.
d. Consulte el diccionario de datos para ver de nuevo el código fuente del cuerpo del
paquete. ¿Es legible el código?
Práctica 12
1