Oracle Application Server 10gで長時間実行されているレポートを実行しているときに、レポートのステータスが「25個の3225ページが完了しました」などのOAS管理コンソールに存在します。長時間実行しているレポートの現在のステータスを取得するにはどうすればよいですか?
OASからこの値を取得して、ユーザーにOracleフォームで表示できるようにするにはどうすればよいですか。
Oracle Application Server 10gで長時間実行されているレポートを実行しているときに、レポートのステータスが「25個の3225ページが完了しました」などのOAS管理コンソールに存在します。長時間実行しているレポートの現在のステータスを取得するにはどうすればよいですか?
OASからこの値を取得して、ユーザーにOracleフォームで表示できるようにするにはどうすればよいですか。
v $ session_longopsに格納されている可能性はありますが、それは可能です。例はhereを参照してください。
一部のOracleコードはV $ session_longopsに書き込みますが、一部のPLSQL関数を使用して独自のアプリケーションにエンコードすることもできます。
OASまたはレポート自体がここに何かを書き込んでいる場合、その情報をOracleフォームから取得して、レポートの実行時にユーザーに表示できます。
上記のコードが実行されている間、v $ session_longopsビューの内容は次のように照会できます。
COLUMN opname FORMAT A20
COLUMN target_desc FORMAT A20
COLUMN units FORMAT A10
SELECT
opname,
target_desc,
sofar,
totalwork,
time_remaining,
units
FROM
v$session_longops
このv $ session_longopsクエリの予想される出力の種類を以下に示します。
OPNAME TARGET_DESC SOFAR TOTALWORK UNITS
-------------------- -------------------- ---------- ---------- ----
BATCH_LOAD BATCH_LOAD_TABLE 3 10 rows