ジャーナル情報のSQLでの取得 (V5R4)

DSPJRN コマンドでテーブルのログ情報を見ることができますが、SQLを使っても同じことができるようになっています。

Display_Journal という表関数を使うものです。

例を見たほうが理解が速いと思いますので、↓をご覧ください。

select * 
  from table (Display_Journal( 
                'QIWSTEST', 'QSQJRN', -- Journal library and name
                '', '', -- Receiver library and name 
                CAST(null as TIMESTAMP), -- Starting timestamp 
                CAST(null as DECIMAL(21,0)), -- Starting sequence number 
                '', -- Journal codes 
                '', -- Journal entries 
                '','','','', -- Object library, Object name, Object type, Object member 
                '', -- User 
                '', -- Job 
                '' -- Program 
              )
          ) as J;

必須指定項目はジャーナル名とライブラリー名です。

該当ジャーナルにログされたテーブルなどの変更の情報が出力されます。(DSPJRN コマンドの出力と同じものですね)

実行例は↓のようなかんじになります。

いくつかオプションを指定してみた例がこちらです。

select *
  from table (Display_Journal( 
                'QEOLDB', 'QSQJRN', -- Journal library and name
                '', '*CURCHAIN', -- Receiver library and name 
                CAST('2009-12-16 00:00:00.000000' as TIMESTAMP), -- Starting timestamp 
                CAST(null as DECIMAL(21,0)), -- Starting sequence number 
                'R', -- Journal codes 
                '', -- Journal entries 
                'QEOLDB','TOKMSP', '*QDDS','', -- Object library, Object name, Object type, Object member 
                '', -- User 
                '', -- Job 
                '' -- Program 
              )
          ) as J;

レシーバー名のところに *CURCHAIN などの DSPJRN コマンドでいう「ジャーナル・レシーバーの範囲」で指定できるオプションを使うことができます。

現在のところは FROMTIME や TOTIME といった引数がないので、ログを取得してくる範囲を細かく指定することは(今のところ)できません。
ログの最初の時間は指定できます。

ジャーナル・コードやジャーナル対象テーブル、作業したジョブやユーザー、プログラムなどの指定もできるようになっているのがわかりますね。このあたりは監査などにも役立てそうです。

実行例は↓のようになります。

[Top Pageに戻る]

Ads by TOK2