One thing I've seen a lot of is calls to dbms_output.put_line. Fortunately, I've seen some dbms_application_info.set_module and other system calls too. But back to that first one.
1. When I used dbms_output, I would typically only use it in development. Once done, I would remove all calls to it, test and promote to QA. It would never survive the trip to production.
2. Typically, when I used it in development, I would tire of typing out d b m s _ o u t p u t . p u t _ l i n e so I would either a, create a standalone procedure or create a private procedure inside the package, something like this (standalone version).
CREATE OR REPLACE PROCEDURE p( p_text IN VARCHAR2 ) IS BEGIN dbms_output.put_line( p_text ); END p;Easy. Then, in the code, I would simply use the procedure p all over the place...like this:
l_start_time date; l_end_time date; begin l_start_time := sysdate; p( 'l_start_time: ' || l_start_time ); --do some stuff here --maybe add some more calls to p l_end_time := sysdate; p( 'l_end_time: ' || l_start_time ); end;Since the procedure is 84 characters long, I only have to use the p function 4 times to get the benefit. Yay for me...I think. Wait, I like typing.