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

OracleでPL/SQLからの出力をフラッシュする方法はありますか?

    あまり。 DBMS_OUTPUTの動作方法は次のとおりです。PL/SQLブロックは、クライアントとの対話なしでデータベース・サーバー上で実行されます。したがって、PUT_LINEを呼び出すと、そのテキストがサーバー上のメモリ内のバッファに入れられるだけです。 PL / SQLブロックが完了すると、制御がクライアントに戻されます(この場合はSQLPlusを想定しています)。その時点で、クライアントはGET_LINEを呼び出してバッファからテキストを取得し、それを表示します。

    したがって、出力をログファイルに頻繁に表示させる唯一の方法は、大きなPL / SQLブロックを複数の小さなブロックに分割することです。これにより、制御がクライアントに返される頻度が高くなります。コードの動作によっては、これは実用的でない場合があります。

    他の方法は、UTL_FILEを使用してテキストファイルに書き込むことです。テキストファイルはいつでもフラッシュできます。または、自律トランザクションプロシージャを使用して、デバッグステートメントをデータベーステーブルに挿入し、各ファイルの後にコミットします。



    1. Postgresql:MacOSXを使用してpg_hba.confファイルを見つける方法

    2. 従来のレプリケーションからGTIDに移行します

    3. ClusterControlを使用したMySQL8.0の監視と運用管理

    4. PostgreSQLで序数を作成する方法