Spørgsmål: Hvad er årsagen til fejlen ORA-04063 “%s has errors”? Hvordan løser jeg den?

Oerr utility returnerer dette for ORA-fejlen.

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.

Løsning

Der var et forsøg på at få adgang til en ugyldig visning eller en procedure.

Visningen kunne være blevet oprettet med FORCE-indstillingen. En operation som f.eks. en GRANT SELECT mod denne ugyldige visning returnerer ORA-04063-fejlen.

I nedenstående tilfælde findes tabellen tab1 ikke. Visningen er oprettet, da FORCE-indstillingen er brugt.

Derpå returneres ORA-04063-fejlen, når der udstedes GRANT SELECT mod denne ugyldige visning.

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

Når visningen er oprettet på en eksisterende tabel, returnerer GRANT SELECT ikke ORA-04063-fejlmeddelelsen.

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.

Problem løst!

Relaterede OraTips

– Lær om forældede databaseparametre i Oracle 12c – Når du opgraderer til Oracle 12c, er det godt at være bekendt med disse parametre. Læs mere her.
– Proxy-brugerautentifikation med Connect Through i Oracle Database – Proxy-autentifikationsmekanismen giver en bruger mulighed for at logge ind som sin egen bruger, men lande i et andet skema uden at kende adgangskoden for denne bruger.

Andre artikler

– Opsætning af Oracle 12c Active Data Guard Database I Multitenant-verdenen betragtes PDB-databasen som en uafhængig database, men de operationelle opgaver, der udføres på CDB-niveau, påvirker alle de PDB-databaser, der er tilsluttet den. Opgaven med at opsætte en Data Guard, skifte eller overgå til en anden database udføres alle på CDB-niveau. Når Data Guard oprettes første gang med CDB-databasen, replikeres alle PDB’er også til målet. Læs mere her.
– Tilslutning af applikationer fra skrivebordet til din VirtualBox-database Hvis du forsøger at oprette forbindelse mellem VirtualBox-maskiner eller forsøger at opsætte netværket til at kommunikere fra skrivebordet til VirtualBox-maskinerne, skal du følge den enkle vejledning her

Articles

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.