13.7 SET_PROGRESSプロシージャ

このプロシージャは、実行の進捗を設定します。このプロシージャは、PL/SQLコード内からコールする必要があります。

GET_EXECUTIONファンクションを使用して情報を取得します。

構文

APEX_BACKGROUND_PROCESS.SET_PROGRESS (
    p_totalwork IN NUMBER DEFAULT NULL,
    p_sofar     IN NUMBER )

パラメータ

パラメータ 説明
p_totalwork バックグラウンド・プロセスで処理される作業ユニットの合計。
p_sofar これまでに処理されている作業ユニット。

例1

次の例は、処理する作業の合計量が既知の場合に、バックグラウンドで実行されるPL/SQLページ・プロセスを示しています。進捗は、次のようにOracle APEXエンジンに報告されます。

BEGIN
    for i in 1 .. 1000 loop
        do_something( p_param => i );
        apex_background_process.set_progress(
            p_totalwork   => 1000,
            p_sofar       => i );
    END loop;
END;

例2

次の例は、処理する作業の合計量が不明な場合に、バックグラウンドで実行されるPL/SQLページ・プロセスを示しています。進捗は、次のようにAPEXエンジンに報告されます。

DECLARE
    l_rows_processed pls_integer := 1;
BEGIN
    for i ( select * from emp ) loop
        do_something( p_param => i.empno );
        apex_background_process.set_progress(
            p_sofar       => l_rows_processed );
        l_rows_processed := l_rows_processed + 1;
    END loop;
END;