ORA-04063: table/view has errors

ORA-04063

W Oracle można generalnie utworzyć obiekt, nawet jeśli występuje błąd kompilacji w procedurze lub pakiecie. Dzięki temu użytkownik może wdrażać schemat bez konieczności naprawiania każdego problemu z niepoprawnymi obiektami. Niestety nie jest tak w przypadku widoków. Jeśli wystąpi błąd kompilacji w procedurze, funkcji lub pakiecie w widoku, nie zostanie on utworzony i pojawi się błąd ORA-04063.

Problem

Błąd ORA-04063 występuje, ponieważ została podjęta próba wykonania procedury składowanej lub próba użycia widoku, który ma błędy.

W przypadku procedur składowanych problemem może być problem ze składnią lub odniesienia do innych procedur, które nie istnieją.

W przypadku widoków możliwym problemem może być odniesienie w zapytaniu definiującym widok do nieistniejącej tabeli. Może to być również tabela, która ma odniesienia do nieistniejących lub niedostępnych typów. Informacje te są ujawniane, gdy komunikat jest rozwijany w narzędziu oerr:

ORA-04063: table/view has errors

Cause: Próba wykonania procedury składowanej lub użycia widoku, który ma błędy. W przypadku procedur składowanych problemem mogą być błędy składni lub odwołania do innych, nieistniejących procedur. W przypadku widoków problemem może być odwołanie w zapytaniu definiującym widok do nieistniejącej tabeli. Może to być również tabela, która posiada referencje do nieistniejących lub niedostępnych typów.

Działanie: Naprawić błędy i/lub utworzyć obiekty odwołujące się, jeśli to konieczne.

Rozwiązanie

Aby rozwiązać problem ORA-04063, wykonaj zapytanie PL/SQL samodzielnie w SQL*Plus. Po uruchomieniu zapytania, użyj polecenia SQL*Plus „show error”, aby zobaczyć przyczynę błędu i lokalizację (według linii) błędu. Składnia tego polecenia to:

SQL > show errors

Aby wyświetlić rozszerzone informacje zwrotne polecenia show errors, dołącz do dba_errors i dba_service, aby wyświetlić informacje zwrotne w obrębie wierszy kodu źródłowego PL/SQL.

Możesz wybrać użycie polecenia CREATE FORCE VIEW, które utworzy widok, ale oznaczy go jako nieważny. Pamiętaj, aby odtworzyć widok po uruchomieniu tego polecenia.

W poniższym przykładzie ciało pakietu PLOG w schemacie LM_EMPLOY albo nie istnieje, albo ma błąd kompilacji:

ORA-04063: ciało pakietu „LM_EMPLOY.PLOG” ma błędy

W tym przypadku, aby usunąć błąd, należy połączyć się z bazą danych jako użytkownik LM_EMPLOY i wykonać następujące polecenie:

SQL > alter package body plog compile;

Następnie należy użyć polecenia „show error” (SQL > show errors), aby zobaczyć, jakie błędy należy poprawić.

Patrząc w przyszłość

Choć trudno jest proaktywnie zapobiegać oglądaniu ORA-04063, zawsze dobrą praktyką jest podwójne sprawdzenie składni wszystkich poleceń. Upewnij się, że zależności są poprawne, a wszystkie zmienne, do których się odwołujesz, istnieją.

Jeśli nadal napotykasz problemy z ORA-04063, możesz rozważyć skontaktowanie się z administratorem bazy danych w celu uzyskania pomocy, jeśli nie jesteś DBA systemu. Innym rozwiązaniem może być skontaktowanie się z profesjonalistą Oracle w celu rozwiązania problemu. Pamiętaj, aby zawsze sprawdzić poświadczenia i certyfikaty konsultantów Oracle, aby upewnić się, że mają odpowiednie doświadczenie i wiedzę, aby pomóc Ci spełnić Twoje potrzeby bazy danych.

.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.