2026-03-12 20:23:15
This commit is contained in:
128
timhall/miscellaneous/dsp.pks
Normal file
128
timhall/miscellaneous/dsp.pks
Normal file
@@ -0,0 +1,128 @@
|
||||
CREATE OR REPLACE PACKAGE dsp AUTHID CURRENT_USER AS
|
||||
-- --------------------------------------------------------------------------
|
||||
-- Name : https://oracle-base.com/dba/miscellaneous/dsp.pks
|
||||
-- Author : Tim Hall
|
||||
-- Description : An extension of the DBMS_OUTPUT package.
|
||||
-- Requirements : https://oracle-base.com/dba/miscellaneous/dsp.pkb
|
||||
-- Ammedments :
|
||||
-- When Who What
|
||||
-- =========== ======== =================================================
|
||||
-- 08-JAN-2002 Tim Hall Initial Creation
|
||||
-- 04-APR-2005 Tim Hall Store last call. Add get_last_prefix and
|
||||
-- get_last_data to allow retrieval.
|
||||
-- Switch from date to timestamp for greater accuracy.
|
||||
-- 02-MAR-2013 Tim Hall Added file_contents pipelined table function.
|
||||
-- Added delete_file.
|
||||
-- Added example usage comments.
|
||||
-- 02-DEC-2013 Tim Hall Add p_trace_level parameter to most code to
|
||||
-- limit amount of trace produced.
|
||||
-- Added "AUTHID CURRENT_USER".
|
||||
-- 21-NOV-2018 Tim Hall Add CLOB overloads to LINE.
|
||||
-- --------------------------------------------------------------------------
|
||||
-- Example usage :
|
||||
/*
|
||||
-- Set up test directory object.
|
||||
CREATE OR REPLACE DIRECTORY test_dir AS '/home/oracle/';
|
||||
GRANT READ, WRITE ON DIRECTORY test_dir TO test;
|
||||
|
||||
-- Test DSP.
|
||||
BEGIN
|
||||
-- Turn on tracing, redirecting it to a file.
|
||||
DSP.show_output_on;
|
||||
DSP.file_output_on('TEST_DIR', 'test.txt');
|
||||
DSP.show_date_on;
|
||||
DSP.line_wrap_on;
|
||||
DSP.set_max_width(200);
|
||||
|
||||
-- Trace something.
|
||||
DSP.line('This is a test');
|
||||
END;
|
||||
|
||||
-- Check the contents of the file.
|
||||
SELECT * FROM TABLE(DSP.file_contents('TEST_DIR', 'test.txt'));
|
||||
|
||||
-- Delete the file.
|
||||
EXEC DSP.delete_file('TEST_DIR', 'test.txt');
|
||||
*/
|
||||
-- --------------------------------------------------------------------------
|
||||
|
||||
-- Constants to control tracing level.
|
||||
trace_level_all CONSTANT PLS_INTEGER := 99;
|
||||
trace_level_info CONSTANT PLS_INTEGER := 30;
|
||||
trace_level_warn CONSTANT PLS_INTEGER := 20;
|
||||
trace_level_error CONSTANT PLS_INTEGER := 10;
|
||||
|
||||
PROCEDURE reset_defaults;
|
||||
|
||||
PROCEDURE show_output_on(p_trace_level IN PLS_INTEGER := DSP.trace_level_all);
|
||||
PROCEDURE show_output_off;
|
||||
|
||||
PROCEDURE show_date_on;
|
||||
PROCEDURE show_date_off;
|
||||
|
||||
PROCEDURE line_wrap_on;
|
||||
PROCEDURE line_wrap_off;
|
||||
|
||||
PROCEDURE set_max_width (p_width IN PLS_INTEGER);
|
||||
|
||||
PROCEDURE set_date_format (p_date_format IN VARCHAR2);
|
||||
|
||||
PROCEDURE file_output_on (p_file_dir IN VARCHAR2 DEFAULT NULL,
|
||||
p_file_name IN VARCHAR2 DEFAULT NULL);
|
||||
|
||||
PROCEDURE file_output_off;
|
||||
|
||||
FUNCTION get_last_prefix
|
||||
RETURN VARCHAR2;
|
||||
|
||||
FUNCTION get_last_data
|
||||
RETURN VARCHAR2;
|
||||
|
||||
PROCEDURE line (p_data IN VARCHAR2,
|
||||
p_trace_level IN PLS_INTEGER := DSP.trace_level_info);
|
||||
|
||||
PROCEDURE line (p_data IN CLOB,
|
||||
p_trace_level IN PLS_INTEGER := DSP.trace_level_info);
|
||||
|
||||
PROCEDURE line (p_data IN NUMBER,
|
||||
p_trace_level IN PLS_INTEGER := DSP.trace_level_info);
|
||||
|
||||
PROCEDURE line (p_data IN BOOLEAN,
|
||||
p_trace_level IN PLS_INTEGER := DSP.trace_level_info);
|
||||
|
||||
PROCEDURE line (p_data IN DATE,
|
||||
p_format IN VARCHAR2 DEFAULT 'DD-MON-YYYY HH24:MI:SS.FF',
|
||||
p_trace_level IN PLS_INTEGER := DSP.trace_level_info);
|
||||
|
||||
PROCEDURE line (p_prefix IN VARCHAR2,
|
||||
p_data IN VARCHAR2,
|
||||
p_trace_level IN PLS_INTEGER := DSP.trace_level_info);
|
||||
|
||||
PROCEDURE line (p_prefix IN VARCHAR2,
|
||||
p_data IN CLOB,
|
||||
p_trace_level IN PLS_INTEGER := DSP.trace_level_info);
|
||||
|
||||
PROCEDURE line (p_prefix IN VARCHAR2,
|
||||
p_data IN NUMBER,
|
||||
p_trace_level IN PLS_INTEGER := DSP.trace_level_info);
|
||||
|
||||
PROCEDURE line (p_prefix IN VARCHAR2,
|
||||
p_data IN BOOLEAN,
|
||||
p_trace_level IN PLS_INTEGER := DSP.trace_level_info);
|
||||
|
||||
PROCEDURE line (p_prefix IN VARCHAR2,
|
||||
p_data IN DATE,
|
||||
p_format IN VARCHAR2 DEFAULT 'DD-MON-YYYY HH24:MI:SS.FF',
|
||||
p_trace_level IN PLS_INTEGER := DSP.trace_level_info);
|
||||
|
||||
FUNCTION file_contents (p_dir IN VARCHAR2,
|
||||
p_file IN VARCHAR2)
|
||||
RETURN DBMSOUTPUT_LINESARRAY PIPELINED;
|
||||
|
||||
PROCEDURE delete_file (p_dir IN VARCHAR2,
|
||||
p_file IN VARCHAR2);
|
||||
|
||||
END dsp;
|
||||
/
|
||||
|
||||
SHOW ERRORS
|
||||
Reference in New Issue
Block a user