PACKAGE of_timer IS PROCEDURE capture (context_in IN VARCHAR2 := NULL); PROCEDURE show_elapsed (prefix_in IN VARCHAR2 := NULL, reset_in IN VARCHAR2 := 'RESET', context_in IN VARCHAR2 := NULL, type_in IN VARCHAR2 := 'MESSAGE'); FUNCTION elapsed RETURN NUMBER; END of_timer; PACKAGE BODY of_timer IS PROCEDURE capture (context_in IN VARCHAR2 := NULL) IS BEGIN sp_timer.capture (context_in); END; PROCEDURE show_elapsed (prefix_in IN VARCHAR2 := NULL, reset_in IN VARCHAR2 := 'RESET', context_in IN VARCHAR2 := NULL, type_in IN VARCHAR2 := 'MESSAGE') IS alert_response INTEGER; BEGIN IF UPPER (type_in) = 'MESSAGE' THEN MESSAGE (sp_timer.elapsed_message (prefix_in, reset_in, context_in)); ELSE SET_ALERT_PROPERTY (type_in, ALERT_MESSAGE_TEXT, sp_timer.elapsed_message (prefix_in, reset_in, context_in)); alert_response := SHOW_ALERT (type_in); END IF; END; FUNCTION elapsed RETURN NUMBER IS BEGIN RETURN sp_timer.elapsed; END; END of_timer;