Ich liebe das Package dbms_output, wenn es nur nicht ...
- so einen langen Namen
- so eine eingeschänkte Bedienung
hätte.
Aber den letzen Punkt können wir ändern. In diesem Tipp holen wir die Daten, die wir in den Puffer von dbms_output geschrieben haben und legen Sie woanders hin.
##################################################
Umleitung von dbms_output zu pipe
##################################################
CREATE OR REPLACE PROCEDURE test_ausgabe
-- Rechte: grant execute on dbms_pipe to scott;
IS
PROCEDURE dop2pipe (pipe_name IN VARCHAR2 DEFAULT 'DBMS_OUTPUT_PIPE') IS
lines dbms_output.chararr;
num_lines number:=1000000;
BEGIN
dbms_output.get_lines(lines, num_lines);
FOR i IN 1..num_lines LOOP
dbms_pipe.pack_message (lines(i));
END LOOP;
IF (dbms_pipe.send_message (pipe_name)) <> 0 THEN
raise_application_error(-20500,'Fehler beim Senden in Pipe '||pipe_name||' aufgetreten !');
END IF;
END;
BEGIN
dbms_output.enable(null);
FOR i IN 1 .. 10 LOOP
dbms_output.put_line('Zeile='||i);
END LOOP;
dop2pipe; -- <=######## Umwandelung von dbms_output in Pipe
END;
/
CREATE OR REPLACE PROCEDURE get_dout_from_pipe (pipe_name IN VARCHAR2 DEFAULT 'DBMS_OUTPUT_PIPE')
IS
v_message VARCHAR2(32767);
v_timeout NUMBER:=120;
BEGIN
IF (DBMS_PIPE.receive_message(pipe_name,v_timeout)) <> 0 THEN
RAISE_APPLICATION_ERROR(-20501,'Fehler beim Lesen aus Pipe '||pipe_name||' aufgetreten !');
END IF;
LOOP
EXIT WHEN DBMS_PIPE.NEXT_ITEM_TYPE = 0;
DBMS_PIPE.unpack_message(v_message);
DBMS_OUTPUT.PUT_LINE(v_message);
END LOOP;
END;
/
##################################################
Umleitung von dbms_output zu htp
##################################################
CREATE OR REPLACE PROCEDURE test_ausgabe
IS
PROCEDURE dop2htp IS
lines dbms_output.chararr;
num_lines number:=1000000;
BEGIN
dbms_output.get_lines(lines, num_lines);
FOR i IN 1..num_lines LOOP
htp.p(lines(i)||'<BR>');
END LOOP;
END;
BEGIN
dbms_output.enable(null);
FOR i IN 1 .. 10 LOOP
dbms_output.put_line('Zeile='||i);
END LOOP;
dop2htp; -- <=######## Umwandelung von dbms_output in htp.p Ausgabe
END;
Ich hoffe dies konnte Ihnen weiterhelfen, bei sonstigen Fragen melden sie sich gerne bei uns und oder besuchen sie einen der Kurse. :-)