1.) Texte aus oerr unter Linux
06512, 00000, „at %sline %s“
// *Cause: Backtrace message as the stack is unwound by unhandled
// exceptions.
// *Action: Fix the problem causing the exception or write an exception
// handler for this condition. Or you may need to contact your
// application administrator or DBA.
2.) Erklärung
Dieser Fehler tritt mit ORA-06502 auf, wenn in PL/SQL ein Feld mit einem Wert gefüllt werden soll, für den das Feld zu klein ist (Anzahl Stellen) und die Ausnahme (Exception) nicht abgefangen wird.
3.) Lösungsvorschläge
Beispiel:
Falsch:
CREATE OR REPLACE PROCEDURE test1
AS
v_number number(3);
BEGIN
v_number := 1000;
END;
/
SQL> execute test1();
BEGIN test1(); END;
*
ERROR at line 1:
ORA-06502: PL/SQL: numerischer oder Wertefehler: number precision too large
ORA-06512: in „SYS.TEST1“, Zeile 5
ORA-06512: in Zeile 1
Richtig:
SQL> CREATE OR REPLACE PROCEDURE test1
AS
v_number number(3);
BEGIN
v_number := 1000;
EXCEPTION
WHEN OTHERS THEN
v_number := 999;
END;
/
SQL> execute test1();
PL/SQL procedure successfully completed.