ORA-38029: object statistics are locked (les statistiques de l'objet sont verrouillées)
OracleQue signifie cette erreur ?
La collecte/suppression des statistiques a été refusée car les statistiques de l'optimiseur d'une table (ou d'un schéma) sont verrouillées. Les statistiques verrouillées sont protégées contre tout recalcul par DBMS_STATS.
Cause
DBMS_STATS.LOCK_TABLE_STATS ou LOCK_SCHEMA_STATS a été appelé auparavant (par ex. pour figer les statistiques), ou un import Data Pump (notamment CONTENT=METADATA_ONLY) a laissé les statistiques verrouillées involontairement. Exécuter GATHER_TABLE_STATS alors qu'elles sont verrouillées lève cette erreur.
Comment la corriger
Déverrouillez les statistiques : EXEC DBMS_STATS.UNLOCK_TABLE_STATS('APP_SCHEMA','MY_TABLE'); ou au niveau du schéma DBMS_STATS.UNLOCK_SCHEMA_STATS('APP_SCHEMA'); Si vous ne voulez pas lever le verrou mais souhaitez tout de même collecter, utilisez FORCE=>TRUE : EXEC DBMS_STATS.GATHER_TABLE_STATS('APP_SCHEMA','MY_TABLE', force=>TRUE); Pour voir l'état du verrou : SELECT table_name, stattype_locked FROM dba_tab_statistics WHERE stattype_locked IS NOT NULL;
Autres entrées pour ce moteur
- ORA-00376file N cannot be read at this time (le fichier N ne peut pas être lu actuellement)
- ORA-12520TNS:listener could not find available handler for requested type of server (le listener n'a trouvé aucun gestionnaire disponible pour le type de serveur demandé)
- ORA-28001the password has expired (le mot de passe a expiré)
- ORA-00845MEMORY_TARGET not supported on this system (MEMORY_TARGET non pris en charge sur ce système)
- ORA-27102out of memory
- ORA-04030out of process memory when trying to allocate N bytes (mémoire de processus épuisée lors de l'allocation de N octets)
- ORA-12537TNS:connection closed