Dbms_Output.Put_Line印刷値をOracleのテーブルに記録する例を以下に示します。以下は、この例で使用されている「outputlog」という名前のテーブルの構造です。または、要件に応じて独自のテーブルを作成できます。
CREATE TABLE OUTPUTLOG(CHAR_COL VARCHAR2(1000 BYTE)、PROCNAME VARCHAR2(100 BYTE)、LOG_DATE DATE);次に、出力をログに記録するPLSQL匿名ブロックの例を示します。DECLARENNUMBER:=100; vcol DBMS_OUTPUT.chararr; BEGIN DBMS_OUTPUT.enable(100000); ---ここで何かを実行しますDBMS_OUTPUT.put_line('最初の行'); ---ここで何かを行うDBMS_OUTPUT.put_line('2行目'); ---ここで何かを実行しますDBMS_OUTPUT.put_line('3行目'); ---出力をvcolアレイDBMS_OUTPUT.get_lines(vcol、n);に取得します。 FOR i IN 1 .. n LOOP INSERT INTO outputlog(char_col、procname、log_date)VALUES(vcol(i)、'anonymous'、SYSDATE);ループを終了します。 COMMIT; END;注100からnの変数の値を評価し、出力行の数は3つだけなので、出力に3行しかないため、ループして3回だけ記録しますが、出力バッファーに行がある場合100行を超えると、100行しかログに記録されないため、それに応じてこの変数値を調整してください。