Inhaltsverzeichnis
Beschreibung in Oracle-Datenbank
ORA-06512 in Oracle ist einer der häufigsten Fehler, der in PLSQL-Programmen in der Oracle-Datenbank auftritt
Folgendes sagt die Oracle-Dokumentation zu diesem Fehler
Referenz:Oracle-Dokumentation
Sie finden dies immer, indem Sie unten in Unix
eingeben
oerr ORA 06512
Erklärung des Fehlers ORA-06512:
Fehler ORA-06512 bedeutet die Backtrace-Nachricht, wenn der Stapel durch nicht behandelte Ausnahmen in Ihrem PLSQL-Code entladen wird. Dies ist ein Catch-all-Fehler für alle PLSQL-Ausnahmen und wird häufig angezeigt.
ORA 6512 gibt nicht den eigentlichen Fehler an, sondern die Zeilennummer des unbehandelten Fehlers im PLSQL-Code. ORA-6512 erscheint normalerweise in einem Nachrichtenstapel, in dem die vorangehende Nachricht den Grund für den Fehler nennt, wie im folgenden Beispiel:
ORA-06502: PL/SQL: numeric or value error ORA-06512: at line 1112
Oben ist der gelb hervorgehobene Fehler der Hauptfehler
Gründe für ORA-06512-Fehler:
Die Optionen zum Beheben dieses Oracle-Fehlers sind:
1) Beheben Sie die Bedingung, die den nicht behandelten Fehler verursacht.
2) Schreiben Sie einen Ausnahmehandler für diesen nicht behandelten Fehler.
3) Wenden Sie sich an Ihren Oracle DBA, um Hilfe zu erhalten.
Beispiele für ORA-06512:
Sehen wir uns ein paar Beispiele an, wie man daran arbeitet
CREATE OR REPLACE PROCEDURE Testora_proc AS Site_name varchar2(5); begin site_name := 'techgoeasy.com'; end; / Procedure created. sql> Exec Testora_proc ERROR at line 1: ORA-06502: PL/SQL: numeric or value error: character string buffer too small ORA-06512: at line 5
In dem oben angegebenen Beispiel wurde die Prozedur erfolgreich kompiliert, aber es gab Fehler während der Ausführung
Der eigentliche Fehler ist also der Fehler
ORA-06502: PL/SQL: numeric or value error: character string buffer too small
Wir können dies leicht korrigieren, indem wir die Größe der Variablen erhöhen
CREATE OR REPLACE PROCEDURE Testora_proc AS Site_name varchar2(20); begin site_name := 'techgoeasy.com'; end; / Procedure created. SQL> Exec Testoraproc PL/SQL procedure successfully completed.
Wir können dies auch mit der Ausnahmebehandlung lösen
CREATE OR REPLACE PROCEDURE Testora_proc AS Site_name varchar2(5); begin site_name := 'techgoeasy.com'; EXCEPTION WHEN OTHERS THEN site_name := 'tech'; end; / Procedure created.SQL>Exec Testoraproc; PL/SQL procedure successfully completed.
Ein anderes Beispiel wäre
CREATE OR REPLACE PROCEDURE Testora_proc AS node_name varchar2(5); begin select node into node_name from db_node; end; / Procedure created SQL> Exec Testora_proc; ORA-01422: exact fetch returns more than requested number of rows ORA-06512: at “NODE_NAME”, line 4 ORA-06512: at line 1
Hier ist ORA-01422 der eigentliche Fehler. Wir haben mehr als 1 Zeile in der Tabelle db_node und erhalten mehrere Werte für den Knoten. Ein Fix könnte also eine Zeile einschränken
CREATE OR REPLACE PROCEDURE Testora_proc AS node_name varchar2(5); begin select node into node_name from db_node where rownum <2; end; / Procedure created SQL> Exec Testora_proc; PL/SQL procedure successfully completed.
Ein anderes Beispiel wäre
CREATE OR REPLACE PROCEDURE Testora_proc AS node_name varchar2(5); begin select node into node_name from db_node; end; / Procedure created SQL> Exec Testora_proc; ORA-01403: no data found ORA-06512: at “NODE_NAME”, line 4 ORA-06512: at line 1
Hier ist ORA-01403 der eigentliche Fehler. Wir haben keine Zeilen in der Oracle-Tabelle db_node und wir erhalten den Fehler, dass keine Daten gefunden wurden. Eine Lösung könnte also darin bestehen, die Ausnahmebehandlung einzuführen
CREATE OR REPLACE PROCEDURE Testora_proc AS node_name varchar2(5); begin select node into node_name from db_node where rownum <2; EXCEPTION WHEN NO_DATA_FOUND THEN node_name := 'tech'; end; / Procedure created SQL> Exec Testora_proc; PL/SQL procedure successfully completed.
Einige weitere Beispiele können sich auf SYS.UTL_FILE
befindenSQL> declare F_LOG utl_file.file_type; begin F_LOG := utl_file.fopen('TESTDIR','k', 'w'); end; / 2 3 4 5 6 declare * ERROR at line 1: ORA-29283: invalid file operation ORA-06512: at "SYS.UTL_FILE", line 536 ORA-29283: invalid file operation ORA-06512: at line 4
Hier ist der Hauptfehler ORA-29283. Überprüfen Sie die Lösung, indem Sie auf den Link klicken
Ich hoffe, Ihnen gefällt dieser Beitrag auf ORA-6512 Fehlermeldung
Verwandte ArtikelORA-00911
ORA-03113
ORA-00257
ORA-27154
ORA-29913
ORA-20001 in Sammeln Sie Schemastatistiken auf 11g(FND_HISTOGRAM_COLS )