La session où le package est actuellement appelé conserve cet état du package. Si vous recompilez le package, au moment où le package est à nouveau appelé dans cette session, vous rencontrerez cette erreur.
-
Vous pouvez exécuter DBMS_SESSION.RESET_PACKAGE ; pour libérer la mémoire, les curseurs et les variables de package après l'exécution de l'appel PL/SQL qui a rendu l'invocation terminée.
-
Vous pouvez fermer toutes les sessions existantes et ré-exécuter.
-
Vous pouvez créer le package, Packages SERIALLY_REUSABLE en utilisant
PRAGMA SERIALLY_REUSABLE;
déclaration. Si un paquet estSERIALLY_REUSABLE
, son état de package est stocké dans une zone de travail d'un petit pool de la zone globale du système (SGA). L'état du package ne persiste que pendant la durée de vie d'un appel au serveur.