DBMS_OUTPUT システムパッケージを使用すると、ストアドプロシージャ、パッケージ、トリガーからメッセージを送信できます。
このシステムパッケージは主にデバッグに使用され、PLデバッグ情報を表示します。
DBMS_OUTPUT システムパッケージの PUT および PUT_LINE ストアドプロシージャを使用すると、情報をバッファに格納し、他のトリガー、ストアドプロシージャ、またはパッケージが読み取りやすくします。個別のPLサブルーチンや匿名ブロック内では、GET_LINE または GET_LINES を呼び出してバッファ情報を表示できます。
機能の適用範囲
この内容はOceanBaseデータベースEnterprise Editionにのみ適用されます。OceanBaseデータベースCommunity EditionはMySQLモードのみを提供します。
DBMS_OUTPUTの使用方法
GET_LINEを呼び出さない場合、バッファされたメッセージは無視されます。アプリケーションコードで
DISABLEまたはENABLEストアドプロシージャを呼び出すことは通常避けてください。これは外部ツールによる出力の制御に影響を与える可能性があります。注意
DBMS_OUTPUTで出力された情報が送信され始めるのは、サブルーチンやトリガーの実行が完了するまでです。現時点では、DBMS_OUTPUTの出力情報をクライアントにリアルタイムで送信するメカニズムはありません。
DBMS_OUTPUTのデータ構造
DBMS_OUTPUT システムパッケージは、GET_LINES ストアドプロシージャと共に使用する CHARARR テーブル型と DBMSOUTPUT_LINESARRAY オブジェクト型を定義しています。
CHARARR テーブル型
CHARARR テーブル型は GET_LINES と共に使用し、PUT および PUT_LINE で送信されたテキストを取得するために使用されます。
構文は以下のとおりです:
TYPE CHARARR IS TABLE OF VARCHAR2(32767) INDEX BY BINARY_INTEGER;
DBMSOUTPUT_LINESARRAY オブジェクト型
DBMSOUTPUT_LINESARRAY オブジェクト型はパッケージ外部で定義された型であり、GET_LINES と共に使用して PUT および PUT_LINE で送信されたテキストを取得するために使用されます。
構文は以下のとおりです:
TYPE DBMSOUTPUT_LINESARRAY IS
VARRAY(2147483647) OF VARCHAR2(32767);
DBMS_OUTPUTサブルーチンの概要
次の表は、OceanBaseデータベースの現在のバージョンでサポートされている DBMS_OUTPUT サブルーチンとその簡単な説明を示しています。