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サブルーチンとその簡潔な説明を示しています。