Tengo un script que hace uso de un paquete (PKG_MY_PACKAGE). Voy a cambiar algunos de los campos en una consulta en ese paquete y luego recompilarlo (no cambio ni compilo ningún otro paquete). Corro el guión y me sale un error que se parece aPaquete PL/SQL invalidado
ORA-04068: existing state of packages has been discarded ORA-04061: existing state of package body "USER3.PKG_MY_PACKAGE" has been invalidated ORA-04065: not executed, altered or dropped package body "USER3.PKG_MY_PACKAGE" ORA-06508: PL/SQL: could not find program unit being called: "USER3.PKG_MY_PACKAGE" ORA-06512: at line 34
corro el script de nuevo (sin cambiar nada más en el sistema) y la secuencia de comandos se ejecuta correctamente.
Pensé que cuando compilé antes de ejecutar el script que solucionaría las referencias no válidas. Esto es 100% reproducible, y cuanto más uso este script, más molesto se vuelve. ¿Qué podría causar esto y qué lo solucionaría?
(Oracle 10g, usando PL/SQL Developer 7)
@OMG: Solo estoy recompilando el cuerpo porque eso es todo lo que cambia. – FrustratedWithFormsDesigner
No hay ninguna razón para que use variables globales para esto; solo cambie a sys_context. De esta forma, puede eliminar completamente las variables globales y hacer que su paquete sea sin estado. –