Сесията, в която пакетът е извикан в момента, запазва това състояние на пакета. Ако прекомпилирате пакета, тогава в момента, в който пакетът бъде извикан отново в тази сесия, ще получите тази грешка.
-
Можете да изпълните DBMS_SESSION.RESET_PACKAGE; за освобождаване на паметта, курсорите и променливите на пакета, след като извикването на PL/SQL, което е направило извикването, приключи.
-
Можете да затворите всички съществуващи сесии и да изпълните отново.
-
Можете да направите пакета, SERIALLY_REUSBLE Packages чрез използване на
PRAGMA SERIALLY_REUSABLE;
изявление. Ако пакетът еSERIALLY_REUSABLE
, състоянието на неговия пакет се съхранява в работна област в малък пул в глобалната област на системата (SGA). Състоянието на пакета се запазва само за живота на извикването на сървъра.