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