we are using Oracle 10.2.0.5 on Solaris. Our business logic is coded in some PLSQL packages.
An error occures in this function (inside a package):
- Code: Select all
CREATE OR REPLACE PACKAGE BODY Y AS
...
FUNCTION some_fct
(
nKnz NUMBER
)
RETURN NUMBER
IS
nID NUMBER;
BEGIN
SELECT O.ID INTO nID
FROM tbl_o O JOIN tbl_p P ON O.ID = P.ID
WHERE O.KNZ = nKnz;
RETURN nID;
EXCEPTION
WHEN NO_DATA_FOUND THEN RETURN -1;
END some_fct;
...
END Y;
The error points to the select statement:
- Code: Select all
ORA-06512: at "X.Y", line 137
I would expect a preceding error (like ORA-01722) to have more detail. But there was nothing more.
At first I added an additional exception handler:
- Code: Select all
WHEN OTHERS THEN
dbms_output.put_line( 'Error Stack...' );
dbms_output.put_line( dbms_utility.format_error_stack );
dbms_output.put_line( 'Error Backtrace...' );
dbms_output.put_line( dbms_utility.format_error_backtrace );
raise;
The result was:
- Code: Select all
Error_Stack...
Error_Backtrace...
ORA-06512: at line 1
ORA-06512: at "X.Y", line 137
The SQL statement alone works fine.
What can I do to get the preceding (real) errors?
Many Thanks.