Domanda: Qual è la causa dell’errore ORA-04063 “%s ha degli errori”? Come posso risolverlo?

L’utility Oerr restituisce questo per l’errore 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.

Soluzione

C’è stato un tentativo di accedere a una vista o una procedura non valida.

La vista potrebbe essere stata creata con l’opzione FORCE. Un’operazione come una GRANT SELECT contro questa vista non valida restituirà l’errore ORA-04063.

Nel caso seguente la tabella tab1 non esiste. La vista viene creata poiché l’opzione FORCE è in uso.

Di conseguenza quando viene emesso il GRANT SELECT contro questa vista non valida viene restituito l’errore ORA-04063.

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

Quando la vista viene creata su una tabella esistente il GRANT SELECT non restituisce il messaggio di errore 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.

Il problema è stato risolto!

Related OraTips

– Impara i parametri di database deprecati in Oracle 12c – Quando si passa a Oracle 12c è bene avere familiarità con questi parametri. Leggi di più qui.
– Autenticazione utente proxy con Connect Through in Oracle Database – Il meccanismo di autenticazione proxy permette a un utente di accedere come proprio utente ma atterrare in uno schema diverso senza conoscere la password per quell’utente.

Altri articoli

– Impostazione di Oracle 12c Active Data Guard Database Nel mondo Multitenant, il Database PDB è considerato un database indipendente ma i compiti operativi eseguiti a livello CDB hanno effetto su tutti i database PDB collegati ad esso. I compiti di impostazione di un Data Guard, lo switching o il failing over sono tutti eseguiti a livello di CDB. Quando il Data Guard è inizialmente impostato, con il database CDB, tutti i PDB sono replicati anche sul target. Leggi di più qui.
– Connettere le applicazioni dal desktop al tuo database VirtualBox Se stai cercando di connetterti tra le macchine VirtualBox o di impostare la rete per comunicare dal desktop alle macchine VirtualBox, segui le istruzioni semplici da usare qui

Articles

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.