Spis treści
Opis w bazie danych Oracle
ORA-06512 w Oracle jest jednym z najczęstszych błędów występujących w programach PLSQL w bazie danych Oracle
Oto, co dokumentacja Oracle mówi o tym błędzie
Odniesienie:dokumentacja Oracle
Możesz to zawsze znaleźć, wpisując poniżej w systemie Unix
oerr ORA 06512
Wyjaśnienie błędu ORA-06512:
Błąd ORA-06512 oznacza komunikat śledzenia wstecznego, gdy stos jest rozwijany przez nieobsłużone wyjątki w kodzie PLSQL. Jest to błąd typu catch-all dla wszystkich wyjątków PLSQL i jest często spotykany.
ORA 6512 nie wskazuje rzeczywistego błędu, ale numer wiersza nieobsłużonego błędu w kodzie PLSQL. ORA-6512 zwykle pojawia się w stosie komunikatów, w którym poprzedni komunikat zawiera nazwę przyczyny błędu, tak jak w poniższym przykładzie:
ORA-06502:PL/SQL:błąd liczbowy lub wartościowy ORA-06512:na linii 1112
W powyższym, podświetlony na żółto błąd jest głównym błędem
Przyczyny błędu ORA-06512:
Opcje rozwiązania tego błędu Oracle to:
1) Napraw stan, który powoduje nieobsługiwany błąd.
2) Napisz procedurę obsługi wyjątków dla tego nieobsłużonego błędu.
3) Skontaktuj się z administratorem bazy danych Oracle, aby uzyskać pomoc.
Przykłady ORA-06512:
Zobaczmy kilka przykładów, jak nad tym pracować
UTWÓRZ LUB ZAMIEŃ PROCEDURĘ Testora_procASSsite_name varchar2(5);beginsite_name :='techgoeasy.com';end;/Procedure created.sql> Exec Testora_procERROR w wierszu 1:ORA-06502:PL/SQL:błąd numeryczny lub wartości:znak za mały bufor ciągówORA-06512:w linii 5
W powyższym przykładzie procedura została skompilowana pomyślnie, ale dała błędy podczas wykonywania
Tak więc rzeczywisty błąd jest błędem
ORA-06502:PL/SQL:błąd liczbowy lub wartościowy:zbyt mały bufor ciągu znaków
Możemy to łatwo poprawić, zwiększając rozmiar zmiennej
UTWÓRZ LUB ZAMIEŃ PROCEDURĘ Testora_procASSite_name varchar2(20);beginsite_name :='techgoeasy.com';end;/Procedure created.SQL> Exec Procedura TestoraprocPL/SQL zakończona pomyślnie.
Możemy to rozwiązać również za pomocą programu obsługi wyjątków
UTWÓRZ LUB ZAMIEŃ PROCEDURĘ Testora_procASSsite_name varchar2(5);beginsite_name :='techgoeasy.com';WYJĄTEKGDY INNI THENsite_name :='tech';end;/Procedure created.SQL>Exec Testoraproc;Innym przykładem może być
UTWÓRZ LUB ZAMIEŃ PROCEDURĘ Testora_procASnode_name varchar2(5);rozpocznij wybór węzła do nazwy_węzła z db_node;end;/Procedure createdSQL> Exec Testora_proc;ORA-01422:dokładne pobranie zwraca więcej niż żądaną liczbę wierszy ORA-06512:w „NODE_NAME”, linia 4ORA-06512:w linii 1Tutaj ORA-01422 jest prawdziwym błędem. mamy więcej niż 1 wiersz w tabeli db_node i otrzymujemy wiele wartości dla węzła. Więc jedna poprawka może ograniczać jeden wiersz
UTWÓRZ LUB ZAMIEŃ PROCEDURĘ Testora_procASnode_name varchar2(5);rozpocznijwybierz węzeł do nazwa_węzła z db_node gdzie rownum <2;end;/Procedure createdSQL> Exec Testora_proc;PL/SQL procedura zakończona pomyślnie.Innym przykładem może być
UTWÓRZ LUB ZAMIEŃ PROCEDURĘ Testora_procASnode_name varchar2(5);rozpocznijwybierz węzeł do nazwa_węzła z db_node;end;/Procedure createdSQL> Exec Testora_proc;ORA-01403:nie znaleziono danych ORA-06512:w „NODE_NAME”, linia 4ORA-06512:w linii 1Tutaj ORA-01403 jest prawdziwym błędem. nie mamy wierszy w tabeli db_node oracle i nie otrzymujemy błędu nie znaleziono danych. Tak więc jednym z rozwiązań może być wprowadzenie obsługi wyjątków
UTWÓRZ LUB ZAMIEŃ PROCEDURĘ Testora_procASnode_name varchar2(5);rozpocznijwybierz węzeł do nazwa_węzła z db_node, gdzie numer wiersza <2;WYJĄTEK,GDY NIE ZNALEZIONO_DANYCH THEN nazwa_węzła :='tech'; koniec; /Procedure createdSQL> Exec Testora_proc;Procedura PL/SQL zakończona pomyślnie.Więcej przykładów można znaleźć na SYS.UTL_FILE
SQL> defineF_LOG utl_file.file_type;beginF_LOG :=utl_file.fopen('TESTDIR','k', 'w');end;/ 2 3 4 5 6declare*ERROR w linii 1:ORA-29283 :nieprawidłowa operacja na pliku ORA-06512:w „SYS.UTL_FILE”, wiersz 536ORA-29283:nieprawidłowa operacja na plikuORA-06512:w wierszu 4Tutaj głównym błędem jest ORA-29283. Sprawdź rozwiązanie, klikając link
Mam nadzieję, że podoba Ci się ten post na ORA-6512 Komunikat o błędzie
Powiązane artykuły
ORA-00911
ORA-03113
ORA-00257
ORA-27154
ORA-29913
ORA-20001 w Zbierz statystyki schematu na 11g(FND_HISTOGRAM_COLS )