Question : Quelle est la cause de l’erreur ORA-04063 « %s has errors » ? Comment puis-je la résoudre ?
L’utilitaire Oerr renvoie ceci pour l’erreur ORA.
ORA-04063 "%s has errors"
Attempt to execute a stored procedure or use a view that has errors. For stored procedures, the problem could be syntax errors or references to other, non-existent procedures. For views, the problem could be a reference in the view's defining query to a non-existent table. Can also be a table which has references to non-existent or inaccessible types.
Solution
Il y a eu une tentative d’accès à une vue ou à une procédure non valide.
La vue pourrait avoir été créée avec l’option FORCE. Une opération comme un GRANT SELECT contre cette vue non valide renverra l’erreur ORA-04063.
Dans le cas ci-dessous la table tab1 n’existe pas. La vue est créée puisque l’option FORCE est utilisée.
En conséquence, lorsque le GRANT SELECT est émis contre cette vue invalide, l’erreur ORA-04063 est retournée.
SQL>CREATE OR REPLACE FORCE VIEW vst.myview
AS SELECT * FROM tab1;
Warning: View created with compilation errors.
SQL> GRANT SELECT ON vst.myview TO USER_A;
ORA-04063: view "VST.MYVIEW" has errors
Lorsque la vue est créée sur une table existante, le GRANT SELECT ne retourne pas le message d’erreur ORA-04063.
SQL>CREATE OR REPLACE FORCE VIEW vst.myview
AS SELECT * FROM dba_tables;
View created.
SQL> GRANT SELECT ON vst.myview TO USER_A;
Grant succeeded.
Sujet résolu!
Tips Ora connexes
– Apprenez à connaître les paramètres de base de données dépréciés dans Oracle 12c – Lors de la mise à niveau vers Oracle 12c, il est bon de se familiariser avec ces paramètres. Lisez la suite ici.
– Authentification de l’utilisateur proxy avec Connect Through dans Oracle Database – Le mécanisme d’authentification proxy permet à un utilisateur de se connecter en tant que son propre utilisateur mais d’atterrir dans un schéma différent sans connaître le mot de passe de cet utilisateur.
Autres articles
– Configuration d’une base de données active Data Guard d’Oracle 12c Dans le monde multitenant, la base de données PDB est considérée comme une base de données indépendante mais les tâches opérationnelles effectuées au niveau CDB ont un effet sur toutes les bases de données PDB qui y sont branchées. Les tâches de mise en place d’un Data Guard, de commutation ou de basculement sont toutes effectuées au niveau de la CDB. Lorsque le Data Guard est initialement configuré, avec la base de données CDB, toutes les PDB sont également répliquées sur la cible. En savoir plus ici.
– Connecter les applications du bureau à votre base de données VirtualBox Si vous essayez de vous connecter entre les machines VirtualBox ou de configurer le réseau pour communiquer du bureau aux machines VirtualBox, suivez les instructions simples à utiliser ici