create or replace package body print as
g_nr number := 0;
g_nvl varchar(1) := '#';
function check_nvl
(p_a varchar2)
return varchar2
is
begin
if not p_a in ('#', ';', '\', ':')
then
raise_application_error(-20000, 'Ongeldig NULL-teken.');
end if;
return p_a;
end check_nvl;
procedure set_nvl (p_a varchar2)
is
begin
g_nvl := check_nvl(p_a);
end set_nvl;
procedure pr (p_tekst varchar2, p_dest varchar2 := 'S')
is
v_output varchar2(255) := substr(p_tekst, 1, 255);
begin
if v_output is null
then
v_output := g_nvl;
end if;
if upper(p_dest) like '%S%'
then
dbms_output.put_line(v_output);
end if;
if upper(p_dest) like '%T%'
then
g_nr := g_nr + 1;
insert into meldingen
(nr, melding)
values
(g_nr, v_output);
end if;
end pr;
procedure cleanup
is
begin
delete from meldingen;
g_nr := 0;
end cleanup;
end print;