View Exhibit 1 and examine the structure of the EMP table.
View Exhbit2 and examine the code of the packages that you have created.
You issue the following command:
SQL> DROP PACKAGE manage_emp;
What is the outcome?
A.
It drops both the MANAGE_EMP AND EMP__DET packages because of the cascading effect.
B.
It drops the MANAGE_EMP package and invalidates only the body for the EMP_DET package.
C.
It returns an error and does not drop the MAMAGE_EMP package because of the cascading effect.
D.
It drops the MANAGE_EMP package and invalidates both the specification and body for the EMP_DET package.
B is correct answer
La resuesta correcta es la B, por lo siguiente:
Puedes usar la sentencia DROP para borrar un paquete siempre y cuando tengas el privilegio sobre el paquete, puedes usar la sintaxis de la siguiente forma:
1.- DROP PACKAGE package_name; esta sentencia borra tanto el package specification, como el package body.
2.- DROP PACKAGE BODY package_body_name; esta sentencia borra solo el body package pero deja viva su package specification.
NOTA: en la sentencia 1, si algún miembro del package borrado, esta siendo referenciado en algún otro lúgar de un package este se invalida.
Meter el código mostrado en el reactivo y después lanzar la siguiente consulta:
SELECT object_name, object_type, status
FROM dba_objects
WHERE object_name=’EMP_DEPT’;
NOTA 2: si vuelves reconstruir los 2 paquetes borrados el package body que se quedo invalidado no se valida de manera automática, por lo que tendrás que realizar un CREATE OR REPLACE del package body o lanzar la siguiente sentencia:
ALTER PACKAGE package_name compile body;
Gracias Profe chidas respuestas.
B
B
B is correct
B