Pytanie: Jaka jest przyczyna błędu ORA-04063 „%s ma błędy”? Jak rozwiązać ten problem?
Oerr utility zwraca to dla błędu 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.
Rozwiązanie
Wystąpiła próba dostępu do nieprawidłowego widoku lub procedury.
Widok mógł zostać utworzony z opcją FORCE. Operacja taka jak GRANT SELECT względem tego nieprawidłowego widoku zwróci błąd ORA-04063.
W poniższym przypadku tabela tab1 nie istnieje. Widok jest tworzony od momentu użycia opcji FORCE.
W konsekwencji, gdy polecenie GRANT SELECT jest wykonywane względem tego nieprawidłowego widoku, zwracany jest błąd 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
Gdy widok jest tworzony na istniejącej tabeli, polecenie GRANT SELECT nie zwraca komunikatu o błędzie 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.
Problem rozwiązany!
Porady związane z OraTips
– Learn about Deprecated Database Parameters in Oracle 12c – Podczas aktualizacji do wersji Oracle 12c warto zapoznać się z tymi parametrami. Przeczytaj więcej tutaj.
– Proxy User Authentication with Connect Through in Oracle Database – Mechanizm uwierzytelniania Proxy pozwala użytkownikowi zalogować się jako jego własny użytkownik, ale wylądować w innym schemacie bez znajomości hasła dla tego użytkownika.
Inne artykuły
– Konfigurowanie Oracle 12c Active Data Guard Database W świecie Multitenant, baza danych PDB jest uważana za niezależną bazę danych, ale zadania operacyjne wykonywane na poziomie CDB wpływają na wszystkie bazy danych PDB podłączone do niej. Zadania związane z tworzeniem Data Guard, przełączaniem lub awarią są wykonywane na poziomie CDB. Gdy Data Guard jest początkowo konfigurowany z bazą CDB, wszystkie bazy PDB są również replikowane do celu. Przeczytaj więcej tutaj.
– Podłączanie aplikacji z Pulpitu do bazy danych VirtualBox Jeśli próbujesz połączyć się między maszynami VirtualBox lub próbujesz skonfigurować sieć do komunikacji z Pulpitu do maszyn VirtualBox, postępuj zgodnie z prostymi instrukcjami tutaj