sql >> データベース >  >> RDS >> Oracle

DBMS_OUTPUT.Get_Linesを使用して、DBMS_OUTPUT.Put_Line出力をOracleのテーブルに記録します。

    Dbms_Output.Put_Lineは、問題が発生している場所を追跡するために必要な値を出力することにより、PLSQLコードを簡単にデバッグするための優れた方法です。ただし、その印刷データをテーブルに記録していつでも分析したい場合は、Dbms_Output.Get_Linesプロシージャを使用してこれを行うことができます。

    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行しかログに記録されないため、それに応じてこの変数値を調整してください。
    1. SQLServer未使用インデックス

    2. Oracle結合-従来の構文とANSI構文の比較

    3. sqliteに特定の数の空の行を追加するにはどうすればよいですか?

    4. SQLサーバーがこのエラーをスローするのはなぜですか:値NULLを列'id'に挿入できませんか?