ORA-04061: existing state of package/procedure has been invalidated (l'état existant du package/de la procédure a été invalidé)
OracleQue signifie cette erreur ?
L'état existant d'un objet PL/SQL appelé (package, procédure, fonction) a été invalidé car un objet dont il dépend a changé. C'est une variante de la perte d'état accompagnée d'ORA-04068 ; l'état du package conservé par la session n'est plus valide.
Cause
Pendant qu'une session utilisait un package, un DDL a été appliqué à ce package ou à ses dépendances (modification de structure de table, recompilation, changement de droits). En conséquence, l'état du package de la session a été invalidé. Observé dans les environnements à déploiements fréquents lorsque des changements de schéma sont effectués pendant que l'application tourne.
Comment la corriger
Le même appel réussit généralement à la deuxième tentative (l'état ayant été réinitialisé) ; interceptez cette erreur dans l'application et relancez en toute sécurité. Effectuez les changements de schéma pendant un faible trafic applicatif/une fenêtre de maintenance. Compilez en masse les objets invalides : EXEC DBMS_UTILITY.COMPILE_SCHEMA('APP_SCHEMA'); Les conceptions qui minimisent l'état des packages (variables globales) réduisent cet effet.
Autres entrées pour ce moteur
- ORA-19804cannot reclaim N bytes disk space from M bytes limit (impossible de récupérer N octets d'espace disque sur la limite de M octets)
- ORA-00494enqueue held for too long by 'inst N, osid M' (enqueue détenu trop longtemps par 'inst N, osid M')
- ORA-04021timeout occurred while waiting to lock object (timeout en attendant le verrouillage de l'objet)
- ORA-01466unable to read data - table definition has changed (lecture des données impossible : la définition de la table a changé)
- ORA-08176consistent read failure; rollback data not available (échec de lecture cohérente ; données de rollback indisponibles)
- ORA-00020maximum number of processes (N) exceeded (nombre maximal de processus (N) dépassé)
- ORA-01113file N needs media recovery (le fichier N nécessite une media recovery)