ヘッダーをスキップ
Oracle® Application Express APIリファレンス
リリース4.2
B71112-01
  目次へ移動
目次

前
 
次
 

7 APEX_DEBUG

APEX_DEBUGパッケージには、デバッグ・メッセージ・ログを管理するためのユーティリティ・ファンクションが用意されています。具体的には、このパッケージには、Application Expressアプリケーションに含まれるPL/SQLコードおよびデータベース・ストアド・プロシージャとファンクション内のPL/SQLコードのインスツルメントおよびデバッグに必要なAPIが提供されています。PL/SQLコードをインストルメントすると、より迅速にバグを追跡し、予期しない動作を特定することが容易になります。

パッケージには、様々なデバッグ・レベルでのデバッグを有効または無効にする手段、およびメッセージ・ログをクリーンアップするユーティリティ・プロシージャもあります。

『Oracle Application Expressアプリケーション・ビルダー・ユーザーズ・ガイド』のデバッグ・モードへのアクセスに関する説明を参照するか、またはAPEX_DEBUGビューを問い合せることによって、メッセージ・ログを表示できます。

詳細は、個々のAPIの説明を参照してください。


注意:

Oracle Application Express 4.2では、APEX_DEBUG_MESSAGEパッケージの名前がAPEX_DEBUGに変更されました。APEX_DEBUG_MESSAGEのパッケージ名は下位互換性のためにサポートされます。ただし、Oracle Application Expressの旧バージョンでAPIを実行する場合を除き、新規アプリケーションでは新しいAPEX_DEBUGパッケージを使用することをお薦めします。

トピック:


定数

このパッケージでは、次の定数が使用されます。

subtype t_log_level is pls_integer; 
c_log_level_error constant t_log_level := 1; -- critical error 
c_log_level_warn constant t_log_level := 2; -- less critical error 
c_log_level_info constant t_log_level := 4; -- default level if debugging is enabled (e.g. used by apex_application.debug) 
c_log_level_app_enter constant t_log_level := 5; -- application: messages when procedures/functions are entered 
c_log_level_app_trace constant t_log_level := 6; -- application: other messages within procedures/functions 
c_log_level_engine_enter constant t_log_level := 8; -- Application Express engine: messages when procedures/functions are entered 
c_log_level_engine_trace constant t_log_level := 9; -- Application Express engine: other messages within procedures/functions 

DISABLEプロシージャ

このプロシージャは、デバッグ・メッセージを無効にします。

構文

APEX_DEBUG.DISABLE;

パラメータ

なし。

次の例に、デバッグ・メッセージを無効にする方法を示します。

BEGIN
    APEX_DEBUG.DISABLE();
END;

ENABLEプロシージャ

このプロシージャは、デバッグ・メッセージを有効にします。重要性のレベルごとに、監視されるデバッグ・メッセージのタイプを指定できます。


注意:

ENABLEプロシージャは、ページ・ビューまたはページ受入れごとに1回だけコールする必要があります。

構文

APEX_DEBUG.ENABLE (
    p_level    IN  T_LOG_LEVEL DEFAULT C_LOG_LEVEL_INFO );

パラメータ

表7-1に、APEX_DEBUG.ENABLEプロシージャで使用可能なパラメータを示します。

表7-1 APEX_DEBUG.ENABLEプロシージャのパラメータ

パラメータ 説明

p_level

ログに記録するメッセージの1つ以上のレベル。1から9までの整数である必要があり、レベル1は重要度が最も高いメッセージで、レベル9 (デフォルト)は重要度が最も低いメッセージです。特定のレベルを設定すると、そのレベルおよびそのレベルより下のメッセージが記録されます。たとえば、p_levelに2を設定すると、レベル1および2のメッセージが記録されます。


次の例に、レベル1、2および4のメッセージのロギングを有効にする方法を示します。これより高いレベルのメッセージはログに記録されません。

BEGIN
    APEX_DEBUG.ENABLE(
        apex_debug.c_log_level_info);
END;

ENTERプロシージャ

このプロシージャは、レベルc_log_level_app_enterのメッセージを記録します。APEX_DEBUG.ENTER()を使用して、プロシージャまたはファンクションの最初にルーチン名およびその引数を記録します。

構文

APEX_DEBUG.ENTER ( 
p_routine_name IN VARCHAR2, 
p_name01 IN VARCHAR2 DEFAULT NULL, 
p_value01 IN VARCHAR2 DEFAULT NULL, 
p_name02 IN VARCHAR2 DEFAULT NULL, 
p_value02 IN VARCHAR2 DEFAULT NULL, 
p_name03 IN VARCHAR2 DEFAULT NULL, 
p_value03 IN VARCHAR2 DEFAULT NULL, 
p_name04 IN VARCHAR2 DEFAULT NULL, 
p_value04 IN VARCHAR2 DEFAULT NULL, 
p_name05 IN VARCHAR2 DEFAULT NULL, 
p_value05 IN VARCHAR2 DEFAULT NULL, 
p_name06 IN VARCHAR2 DEFAULT NULL, 
p_value06 IN VARCHAR2 DEFAULT NULL, 
p_name07 IN VARCHAR2 DEFAULT NULL, 
p_value07 IN VARCHAR2 DEFAULT NULL, 
p_name08 IN VARCHAR2 DEFAULT NULL, 
p_value08 IN VARCHAR2 DEFAULT NULL, 
p_name09 IN VARCHAR2 DEFAULT NULL, 
p_value09 IN VARCHAR2 DEFAULT NULL, 
p_name10 IN VARCHAR2 DEFAULT NULL, 
p_value10 IN VARCHAR2 DEFAULT NULL, 
p_value_max_length IN PLS_INTEGER DEFAULT 1000 ); 

パラメータ

表7-2に、APEX_DEBUG.ENTERプロシージャで使用可能なパラメータを示します。

表7-2 APEX_DEBUG.ENTERプロシージャのパラメータ

パラメータ 説明

p_routine_name

プロシージャまたはファンクションの名前。

p_namexx/p_valuexx

プロシージャまたはファンクションのパラメータ名と値。

p_value_max_length

p_valuexx値はこの長さに切り捨てられます。


次の例に、APEX_ENTERを使用して、プロシージャの最初にデバッグ・メッセージを追加する方法を示します。

procedure foo ( 
    p_widget_id in number, 
    p_additional_data in varchar2, 
    p_emp_rec in emp%rowtype ) 
is 
begin 
    apex_debug.enter('foo', 
        'p_widget_id' , p_widget_id, 
        'p_additional_data', p_additional_data, 
        'p_emp_rec.id' , p_emp_rec.id ); 
....do something.... 
end foo; 

ERRORプロシージャ

このプロシージャは、レベルc_log_level_errorのメッセージを記録します。このプロシージャは、デバッグ・モードがオフの場合でも常に記録します。

構文

APEX_DEBUG.ERROR ( 
    p_message IN VARCHAR2, 
    p0 IN VARCHAR2 DEFAULT NULL, 
    p1 IN VARCHAR2 DEFAULT NULL, 
    p2 IN VARCHAR2 DEFAULT NULL, 
    p3 IN VARCHAR2 DEFAULT NULL, 
    p4 IN VARCHAR2 DEFAULT NULL, 
    p5 IN VARCHAR2 DEFAULT NULL, 
    p6 IN VARCHAR2 DEFAULT NULL, 
    p7 IN VARCHAR2 DEFAULT NULL, 
    p8 IN VARCHAR2 DEFAULT NULL, 
    p9 IN VARCHAR2 DEFAULT NULL, 
    p_max_length IN PLS_INTEGER DEFAULT 1000 ); 

パラメータ

表7-3に、ERRORプロシージャで使用可能なパラメータを示します。

表7-3 APEX_DEBUG.ERRORプロシージャのパラメータ

パラメータ 説明

p_message

デバッグ・メッセージ。utl_lms.format_messageおよびCのsprintfのように、「%s」の出現はp0によってp19に置換されます。「%%」の出現は特殊文字「%」を示します。「%<n>」の出現はp<n>によって置換されます。

p0からp9

「%s」プレースホルダの置換文字列。

p_max_length

p<n>値はこの長さに切り捨てられます。


次の例に、クリティカル・エラーをデバッグ・ログに記録するためのAPEX_ERRORの使用方法を示します。

apex_debug.error('Critical error %s', sqlerrm);

INFOプロシージャ

このプロシージャは、レベルc_log_level_infoのメッセージを記録します。記録は、デバッグ・モードがオフになっている場合も含め、常に行われます。

構文

APEX_DEBUG.INFO ( 
    p_message IN VARCHAR2, 
    p0 IN VARCHAR2 DEFAULT NULL, 
    p1 IN VARCHAR2 DEFAULT NULL, 
    p2 IN VARCHAR2 DEFAULT NULL, 
    p3 IN VARCHAR2 DEFAULT NULL, 
    p4 IN VARCHAR2 DEFAULT NULL, 
    p5 IN VARCHAR2 DEFAULT NULL, 
    p6 IN VARCHAR2 DEFAULT NULL, 
    p7 IN VARCHAR2 DEFAULT NULL, 
    p8 IN VARCHAR2 DEFAULT NULL, 
    p9 IN VARCHAR2 DEFAULT NULL, 
    p_max_length IN PLS_INTEGER DEFAULT 1000 ); 

パラメータ

表7-4に、APEX_DEBUG.INFOプロシージャで使用可能なパラメータを示します。

表7-4 APEX_DEBUG.INFOプロシージャのパラメータ

パラメータ 説明

p_message

デバッグ・メッセージ。'%s'の文字列は、utl_lms.format_messageおよびC言語のsprintfと同様に、p0からp19によって置換されます。'%%'の文字列は、特殊文字'%'を表します。'%<n>'の文字列は、p<n>によって置換されます。

p0からp9

'%s'プレースホルダに対する置換文字列。

p_max_length

p<n>は、この長さに切り捨てられます。


次の例に、情報をデバッグ・ログに記録するためのAPEX_DEBUG.INFOの使用方法を示します。

apex_debug.info('Important: %s', 'fnord');

LOG_DBMS_OUTPUTプロシージャ

このプロシージャは、dbms_output.get_linesのコンテンツをデバッグ・ログに書き込みます。dbms_outputを使用するレガシー・アプリケーションのメッセージは、デバッグ・ログにコピーされます。

構文

APEX_DEBUG.LOG_DBMS_OUTPUT;

パラメータ

なし。

次の例に、DBMS_OUTPUTバッファのコンテンツをデバッグ・ログに記録する方法を示します。

sys.dbms_output.put_line('some data'); 
sys.dbms_output.put_line('other data'); 
apex_debug.log_dbms_output; 

LOG_LONG_MESSAGEプロシージャ

このプロシージャは、Application ExpressのPLSQLコンポーネント、またはPLSQLプロシージャおよびファンクションからデバッグ・メッセージを生成するために使用します。このプロシージャは、LOG_MESSAGEと同様ですが、より長いメッセージのロギングが可能な点のみ異なります。このメッセージ・ログは、デバッグ出力で4,000の文字のチャンクに分割されます。1つのデバッグ・メッセージは4,000文字までに制限されているためです。

構文

APEX_DEBUG.LOG_LONG_MESSAGE (
    p_message    IN VARCHAR2  DEFAULT NULL,
    p_enabled    IN BOOLEAN   DEFAULT FALSE,
    p_level      IN T_LOG_LEVEL DEFAULT C_LOG_LEVEL_APP_TRACE);

パラメータ

表7-5に、APEX_DEBUG.LOG_LONG_MESSAGEプロシージャで使用可能なパラメータを示します。

表7-5 APEX_DEBUG.LOG_LONG_MESSAGEプロシージャのパラメータ

パラメータ 説明

p_message

長いログ・メッセージ(最大サイズは32767バイト)。

p_enabled

デバッグが有効かどうかに関係なく、メッセージを常にログに記録するにはTRUEを設定します。デバッグが有効な場合にのみメッセージをログに記録するにはFALSEを設定します

p_level

長いログ・メッセージのレベルを識別します。「定数」を参照してください。


次の例に、レベル1および2のメッセージに関してデバッグ・メッセージ・ロギングを有効にし、32767文字まで含むことができるレベル1のメッセージを表示する方法を示します。デバッグは明示的に有効になっており、このパラメータのデフォルト設定の無効よりも、この有効の設定のほうが優先されるため、p_enabledパラメータを指定する必要はありません。

DECLARE
    l_msg VARCHAR2(32767) := 'Debug outputs anything up to varchar2 limit';
BEGIN
    APEX_DEBUG.ENABLE (p_level => 2);
    
    APEX_DEBUG.LOG_LONG_MESSAGE(
        p_message => l_msg,
        p_level => 1 );     
END;

LOG_MESSAGEプロシージャ [非推奨]

このプロシージャは、デバッグ・メッセージを記録します。

構文

APEX_DEBUG.LOG_MESSAGE ( 
    p_message IN VARCHAR2 DEFAULT NULL, 
    p_enabled IN BOOLEAN DEFAULT FALSE, 
    p_level IN T_LOG_LEVEL DEFAULT C_LOG_LEVEL_APP_TRACE );

パラメータ

表7-6に、APEX_DEBUG.LOG_MESSAGEプロシージャで使用可能なパラメータを示します。

表7-6 APEX_DEBUG.LOG_MESSAGEプロシージャのパラメータ

パラメータ 説明

p_message

最大長が1000バイトのデバッグ・メッセージ。

p_enabled

ロギングが有効な場合(値をTRUEに設定するとロギングが有効化)にメッセージを記録します。

p_level

ログ・メッセージのレベルを指定します(1は最も高い重要度で、9は最も低い重要度です)。これは整数値です。


次の例に、レベル1および2のメッセージに関してデバッグ・メッセージ・ロギングを有効にし、変数値を表示するレベル1のメッセージを表示する方法を示します。デバッグは明示的に有効になっており、このパラメータのデフォルト設定の無効よりも、この有効の設定のほうが優先されるため、p_enabledパラメータを指定する必要はありません。

DECLARE
    l_value varchar2(100) := 'test value';
BEGIN
    APEX_DEBUG.ENABLE (p_level => 2);
 
APEX_DEBUG.LOG_MESSAGE(
    p_message => 'l_value = ' || l_value,
    p_level => 1 );
 
END;

LOG_PAGE_SESSION_STATEプロシージャ

このプロシージャは、セッションのアイテム値を記録します。

構文

APEX_DEBUG.LOG_PAGE_SESSION_STATE ( 
    p_page_id IN NUMBER DEFAULT NULL, 
    p_enabled IN BOOLEAN DEFAULT FALSE, 
    p_level IN T_LOG_LEVEL DEFAULT C_LOG_LEVEL_APP_TRACE ); 

パラメータ

表7-7に、APEX_DEBUG.LOG_SESSION_STATEプロシージャで使用可能なパラメータを示します。

表7-7 APEX_DEBUG.LOG_SESSION_STATEプロシージャのパラメータ

パラメータ 説明

p_page_id

現行のアプリケーションとワークスペースのコンテキスト内のページを指定します。

p_enabled

ロギングが有効になっている(値がTRUEに設定されている)場合に、メッセージが記録されます。

p_level

ログ・メッセージのレベルを指定します(1は最も高い重要度で、9は最も低い重要度です)。整数値である必要があります。


次の例に、レベル1および2のメッセージに関してデバッグ・メッセージ・ロギングを有効にし、レベル1のメッセージをアプリケーションの現在のページのすべてのセッション・ステートを含めて表示する方法を示します。デバッグは明示的に有効になっており、このパラメータのデフォルト設定の無効よりも、この有効の設定のほうが優先されるため、p_enabledパラメータを指定する必要はありません。また、この例ではアプリケーションの現在のページのセッション・ステート情報を示すだけであるため、p_page_idを指定していません。

BEGIN
    APEX_DEBUG.ENABLE (p_level => 2);
    
    APEX_DEBUG.LOG_PAGE_SESSION_STATE (p_level => 1);
    
END;

MESSAGEプロシージャ

このプロシージャは、フォーマット済メッセージを一般バージョンで記録します。

構文

APEX_DEBUG.MESSAGE ( 
    p_message IN VARCHAR2, 
    p0 IN VARCHAR2 DEFAULT NULL, 
    p1 IN VARCHAR2 DEFAULT NULL, 
    p2 IN VARCHAR2 DEFAULT NULL, 
    p3 IN VARCHAR2 DEFAULT NULL, 
    p4 IN VARCHAR2 DEFAULT NULL, 
    p5 IN VARCHAR2 DEFAULT NULL, 
    p6 IN VARCHAR2 DEFAULT NULL, 
    p7 IN VARCHAR2 DEFAULT NULL, 
    p8 IN VARCHAR2 DEFAULT NULL, 
    p9 IN VARCHAR2 DEFAULT NULL, 
    p10 IN VARCHAR2 DEFAULT NULL, 
    p11 IN VARCHAR2 DEFAULT NULL, 
    p12 IN VARCHAR2 DEFAULT NULL, 
    p13 IN VARCHAR2 DEFAULT NULL, 
    p14 IN VARCHAR2 DEFAULT NULL, 
    p15 IN VARCHAR2 DEFAULT NULL, 
    p16 IN VARCHAR2 DEFAULT NULL, 
    p17 IN VARCHAR2 DEFAULT NULL, 
    p18 IN VARCHAR2 DEFAULT NULL, 
    p19 IN VARCHAR2 DEFAULT NULL, 
    p_max_length IN PLS_INTEGER DEFAULT 1000, 
    p_level IN T_LOG_LEVEL DEFAULT C_LOG_LEVEL_INFO, 
    p_force IN BOOLEAN DEFAULT FALSE ); 

パラメータ

表7-8に、APEX_DEBUG.MESSAGEプロシージャで使用可能なパラメータを示します。

表7-8 APEX_DEBUG.MESSAGEプロシージャのパラメータ

パラメータ 説明

p_message

デバッグ・メッセージ。utl_lms.format_messageおよびCのsprintfのように、「%s」の出現はp0によってp19に置換されます。'%%'の文字列は、特殊文字'%'を表します。「%<n>」の出現はp<n>によって置換されます。

p0からp19

'%s'プレースホルダに対する置換文字列。

p_max_length

p<n>値はこの長さに切り捨てられます。

p_level

メッセージのログ・レベルのデフォルトはc_log_level_infoです。「定数」を参照してください。

p_force

TRUEの場合、ページがデバッグ・モードでレンダリングされない場合またはp_levelが(URLまたは有効化プロシージャを使用して)構成済のデバッグ・メッセージより大きい場合もデバッグ・メッセージが生成されます。


次の例に、APEX_DEBUG.MESSAGEプロシージャを使用してテキストをデバッグ・ログに追加する方法を示します。

apex_debug.message('the value of %s + %s equals %s', 3, 5, 'eight');


REMOVE_DEBUG_BY_AGEプロシージャ

このプロシージャは、デバッグ・メッセージ・ログから指定日数より古いすべてのデータを削除するために使用します。

構文

APEX_DEBUG.REMOVE_DEBUG_BY_AGE (
    p_application_id IN NUMBER,
    p_older_than_days IN NUMBER);  

パラメータ

表7-9に、APEX_DEBUG.REMOVE_DEBUG_BY_AGEプロシージャで使用可能なパラメータを示します。

表7-9 APEX_DEBUG.REMOVE_DEBUG_BY_AGEプロシージャのパラメータ

パラメータ 説明

p_application_id

アプリケーションのアプリケーションID

p_older_than_days

データが削除される前に、デバッグ・メッセージ・ログに保持される日数。


次の例に、現在のアプリケーションに関するデバッグ・メッセージで、保持日数が3日以上になるものを削除する方法を示します。

BEGIN
    APEX_DEBUG.REMOVE_DEBUG_BY_AGE (
        p_application_id  => TO_NUMBER(:APP_ID),
        p_older_than_days => 3 );
END;

REMOVE_DEBUG_BY_APPプロシージャ

このプロシージャは、デバッグ・メッセージ・ログから、指定アプリケーションに属するすべてのデータを削除するために使用します。

構文

APEX_DEBUG.REMOVE_DEBUG_BY_APP ( 
    p_application_id IN NUMBER); 

パラメータ

表7-10に、APEX_DEBUG.REMOVE_DEBUG_BY_APPプロシージャで使用可能なパラメータを示します。

表7-10 APEX_DEBUG.REMOVE_DEBUG_BY_APPプロシージャのパラメータ

パラメータ 説明

p_application_id

アプリケーションのアプリケーションID


次の例に、現在のアプリケーションに関してログに記録されたすべてのデバッグ・メッセージを削除する方法を示します。

BEGIN
    APEX_DEBUG.REMOVE_DEBUG_BY_APP(
        p_application_id => TO_NUMBER(:APP_ID) );
END;

REMOVE_DEBUG_BY_VIEWプロシージャ

このプロシージャは、指定されたビューのすべてのデータをメッセージ・ログから削除するために使用します。

構文

APEX_DEBUG.REMOVE_DEBUG_BY_VIEW ( 
    p_application_id IN NUMBER, 
    p_view_id IN NUMBER); 

パラメータ

表7-11に、APEX_DEBUG.REMOVE_DEBUG_BY_VIEWプロシージャで使用可能なパラメータを示します。

表7-11 APEX_DEBUG.REMOVE_DEBUG_BY_VIEWプロシージャのパラメータ

パラメータ 説明

p_application_id

アプリケーションのアプリケーションID

p_view_id

ビューのビューID。


次の例に、現在のアプリケーションに属している、ビュー識別子が12345のデバッグ・メッセージを削除する方法を示します。

BEGIN
    APEX_DEBUG.REMOVE_DEBUG_BY_VIEW (
        p_application_id => TO_NUMBER(:APP_ID),
        p_view_id        => 12345 );
END;

REMOVE_SESSION_MESSAGESプロシージャ

このプロシージャは、ワークスペースで現在のセッションに対してデフォルトで指定されたセッションに対するすべてのデータをデバッグ・メッセージ・ログから削除します。

構文

APEX_DEBUG.REMOVE_SESSION_MESSAGES (
    p_session    IN NUMBER  DEFAULT NULL);

パラメータ

表7-12に、APEX_DEBUG.REMOVE_SESSION_MESSAGESプロシージャで使用可能なパラメータを示します。

表7-12 APEX_DEBUG.REMOVE_SESSION_MESSAGESプロシージャのパラメータ

パラメータ 説明

p_session

セッションID。デフォルトの設定は現在のセッションです。


次の例に、現在のセッションでログに記録されたすべてのデバッグ・メッセージを削除する方法を示します。注意: p_sessionパラメータの値が渡されないため、プロシージャではデフォルトで現在のセッションが使用されます。

BEGIN
    APEX_DEBUG.REMOVE_SESSION_MESSAGES();
END;

TOCHARファンクション

このプロシージャは、BOOLEANをVARCHAR2に変換します。

構文

APEX_DEBUG.TOCHAR ( 
    p_value IN BOOLEAN ) 
    return VARCHAR2; 

パラメータ

表7-13に、APEX_DEBUG.TOCHARファンクションで使用可能なパラメータを示します。

表7-13 APEX_DEBUG.TOCHARプロシージャのパラメータ

パラメータ 説明

p_value

BOOLEAN 0または1で、それぞれFALSEまたはTRUEに変換されます。


次の例に、他のデバッグ・プロシージャに渡せるように、APEX_DEBUG.TOCHARファンクションを使用してbooleanの値をvarchar2に変換する方法を示します。

declare
    l_state boolean;
begin
    ....
    apex_debug.info('Value of l_state is %s', apex_debug.tochar(l_state));
    ....
end;

TRACEプロシージャ

このプロシージャは、レベルc_log_level_app_traceのメッセージを記録します。記録は、デバッグ・モードがオフになっている場合も含め、常に行われます。

構文

APEX_DEBUG.TRACE ( 
    p_message IN VARCHAR2, 
    p0 IN VARCHAR2 DEFAULT NULL, 
    p1 IN VARCHAR2 DEFAULT NULL, 
    p2 IN VARCHAR2 DEFAULT NULL, 
    p3 IN VARCHAR2 DEFAULT NULL, 
    p4 IN VARCHAR2 DEFAULT NULL, 
    p5 IN VARCHAR2 DEFAULT NULL, 
    p6 IN VARCHAR2 DEFAULT NULL, 
    p7 IN VARCHAR2 DEFAULT NULL, 
    p8 IN VARCHAR2 DEFAULT NULL, 
    p9 IN VARCHAR2 DEFAULT NULL, 
    p_max_length IN PLS_INTEGER DEFAULT 1000 ); 

パラメータ

表7-14に、APEX_DEBUG.TRACEプロシージャで使用可能なパラメータを示します。

表7-14 APEX_DEBUG.TRACEプロシージャのパラメータ

パラメータ 説明

p_message

デバッグ・メッセージ。'%s'の文字列は、utl_lms.format_messageおよびC言語のsprintfと同様に、p0からp19によって置換されます。'%%'の文字列は、特殊文字'%'を表します。'%<n>'の文字列は、p<n>によって置換されます。

p0からp9

'%s'プレースホルダに対する置換文字列。

p_max_length

p<n>は、この長さに切り捨てられます。


次の例に、低レベルのデバッグ情報をデバッグ・ログに記録するためのAPEX_DEBUG.TRACEの使用方法を示します。

apex_debug.trace('Low-level information: %s+%s=%s', 1, 2, 3);

WARNプロシージャ

このプロシージャは、レベルc_log_level_warnのメッセージを記録します。記録は、デバッグ・モードがオフになっている場合も含め、常に行われます。

構文

APEX_DEBUG.WARN ( 
    p_message IN VARCHAR2, 
    p0 IN VARCHAR2 DEFAULT NULL, 
    p1 IN VARCHAR2 DEFAULT NULL, 
    p2 IN VARCHAR2 DEFAULT NULL, 
    p3 IN VARCHAR2 DEFAULT NULL, 
    p4 IN VARCHAR2 DEFAULT NULL, 
    p5 IN VARCHAR2 DEFAULT NULL, 
    p6 IN VARCHAR2 DEFAULT NULL, 
    p7 IN VARCHAR2 DEFAULT NULL, 
    p8 IN VARCHAR2 DEFAULT NULL, 
    p9 IN VARCHAR2 DEFAULT NULL, 
    p_max_length IN PLS_INTEGER DEFAULT 1000 ); 

パラメータ

表7-15に、APEX_DEBUG.WARNプロシージャで使用可能なパラメータを示します。

表7-15 APEX_DEBUG.WARNプロシージャのパラメータ

パラメータ 説明

p_message

デバッグ・メッセージ。'%s'の文字列は、utl_lms.format_messageおよびC言語のsprintfと同様に、p0からp19によって置換されます。'%%'の文字列は、特殊文字'%'を表します。'%<n>'の文字列は、p<n>によって置換されます。

p0からp9

'%s'プレースホルダに対する置換文字列。

p_max_length

p<n>は、この長さに切り捨てられます。


次の例に、きわめて重要なデータをデバッグ・ログに記録するためのAPEX_DEBUG.WARNの使用方法を示します。

apex_debug.warn('Soft constraint %s violated: %s', 4711, sqlerrm);