Vraag: Wat is de oorzaak van de fout ORA-04063 “%s has errors”? Hoe los ik dit op?
Oerr utility retourneert dit voor de ORA-fout.
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.
Oplossing
Er is geprobeerd om toegang te krijgen tot een ongeldige view of een procedure.
De view kan zijn gemaakt met de FORCE optie. Een bewerking zoals een GRANT SELECT tegen deze ongeldige view zal de fout ORA-04063 teruggeven.
In het onderstaande geval bestaat tabel tab1 niet. De view is gemaakt omdat de FORCE optie is gebruikt.
Dientengevolge zal een GRANT SELECT tegen deze ongeldige view de ORA-04063 foutmelding terugsturen.
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
Wanneer de view is gemaakt op een bestaande tabel zal de GRANT SELECT geen ORA-04063 foutmelding terugsturen.
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.
Issue resolved!
Related OraTips
– Leer meer over afgeschreven databaseparameters in Oracle 12c – Wanneer u een upgrade naar Oracle 12c uitvoert, is het goed om vertrouwd te zijn met deze parameters. Lees hier meer.
– Proxy User Authentication with Connect Through in Oracle Database – Met het Proxy authenticatiemechanisme kan een gebruiker als zijn eigen gebruiker inloggen, maar in een ander schema landen zonder het wachtwoord voor die gebruiker te kennen.
Andere artikelen
– Het opzetten van Oracle 12c Active Data Guard Database In de Multitenant-wereld wordt de PDB Database als een onafhankelijke database beschouwd, maar de operationele taken die op CDB-niveau worden uitgevoerd, hebben effect op alle PDB-databases die erop zijn aangesloten. Het opzetten van een Data Guard, het omschakelen of failing over worden allemaal op CDB-niveau uitgevoerd. Wanneer de Data Guard initieel wordt opgezet, met de CDB database, worden alle PDB’s ook gerepliceerd naar het doel. Lees meer hier.
– Applicaties verbinden van Desktop naar uw VirtualBox Database Als u probeert te verbinden tussen VirtualBox Machines of het netwerk probeert op te zetten om te communiceren van de Desktop naar de VirtualBox machines, volg dan de eenvoudig te gebruiken instructies hier