Jeg er stødt på dette mønster efter megen research, hovedbank og tænderskæren:
CREATE OR REPLACE PACKAGE BODY my_schema.package_name
IS
PROCEDURE foo
IS
BEGIN
-- Call stored procedures/functions that throw unhandled exceptions
EXCEPTION
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE('ERROR! - '
|| DBMS_UTILITY.FORMAT_ERROR_STACK
|| DBMS_UTILITY.FORMAT_ERROR_BACKTRACE);
END foo;
END;
DBMS_UTILITY.FORMAT_ERROR_STACK
funktionen ser ud til at give fejlkoden og meddelelsen og DBMS_UTILITY.FORMAT_ERROR_BACKTRACE
synes at give et ærligt til godhed stackspor, komplet med linjenumre og lagrede procedurenavne i mindst Oracle 10g.
Jeg er ikke sikker på, om disse funktioner er tilgængelige i Oracle 9i. Jeg kunne ikke finde meget information om denne slags ting, selv for Oracle 10g, så jeg tænkte, at jeg i det mindste ville sende dette svar, da 9i er ret gammel (og så den 10g for den sags skyld).