a DBMS_OUTPUT Substitute
The p (Put) package provides a powerful, flexible substitute (and one that requires minimal typing) for Oracle's builtin DBMS_OUTPUT.PUT_LINE package. See p: A Powerful Substitute for DBMS_OUTPUT for details.
Toggling output from the p package
PROCEDURE turn_on;- Turn on output from the p.l procedure (the default). Equivalent to calling DBMS_OUTPUT.ENABLE to enable output from DBMS_OUTPUT.
PROCEDURE turn_off;- Turn off output from the p.l procedure. This setting can be overridden in a particular call to p.l by specifying TRUE for the final show argument.
Setting the line separator
PROCEDURE set_linesep (linesep_in IN VARCHAR2);- Sets the character(s) to be recognized as the line separator in your PL/SQL code (default is =). A line that consists only of the line separator will be displayed by p.l as a blank line.
FUNCTION linesep RETURN VARCHAR2;- Returns the line separator character(s).
Setting the line prefix
PROCEDURE set_prefix (prefix_in IN VARCHAR2 := c_prefix);- Sets the character(s) used as a prefix to the text displayed by the p.l procedure.
The c_prefix constant is defined in the p package as CHR(8).
FUNCTION prefix RETURN VARCHAR2;>- Returns the prefix character(s).
The overloadings of the l procedure
PROCEDURE l (date_in IN DATE, mask_in IN VARCHAR2 := PLV.datemask, show_in IN BOOLEAN := FALSE); PROCEDURE l (number_in IN NUMBER, show_in IN BOOLEAN := FALSE); PROCEDURE l (char_in IN VARCHAR2, show_in IN BOOLEAN := FALSE); PROCEDURE l (char_in IN VARCHAR2, number_in IN NUMBER, show_in IN BOOLEAN := FALSE); PROCEDURE l (char_in IN VARCHAR2, date_in IN DATE, mask_in IN VARCHAR2 := PLV.datemask, show_in IN BOOLEAN := FALSE); PROCEDURE l (boolean_in IN BOOLEAN, show_in IN BOOLEAN := FALSE); PROCEDURE l (char_in IN VARCHAR2, boolean_in IN BOOLEAN, show_in IN BOOLEAN := FALSE); PROCEDURE l (file_in IN UTL_FILE.FILE_TYPE, show_in IN BOOLEAN := FALSE);
The version of l that displays the contents of a UTL_FILE file handle can only be used in PL/SQL Releases 2.3 and beyond (and is only installed when you run the plvinstf.sql script).
If you pass TRUE for the show_in argument, you will always see output from that call to p.l -- even if you have called p.turn_off earlier in the session (but only if you have enabled output from DBMS_OUTPUT).