2012-04-10 7 views
1

Oracle Application Server 10gで長時間実行されているレポートを実行しているときに、レポートのステータスが「25個の3225ページが完了しました」などのOAS管理コンソールに存在します。長時間実行しているレポートの現在のステータスを取得するにはどうすればよいですか?

OASからこの値を取得して、ユーザーにOracleフォームで表示できるようにするにはどうすればよいですか。

答えて

0

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 
関連する問題