2

私の状況:
db2 にある非常に機密性の高いテーブルの使用に関する履歴テーブルを作成したいと考えています。
そのテーブルは、いくつかの静的プラン (既にコンパイル済み) を介して汎用ユーザーによってアクセスされています。

私が欲しいもの:
私は時間を記録する必要があり、WHOはそれを更新しました.

私のニーズに合っているように見えるので、トリガーを使用する予定ですが、「トリガーをトリガーした」トリガー内に入る方法はまだわかりません。
つまり、静的プランを呼び出したバッチまたは実行可能ファイルを知ることです。

注: 各実行可能ファイルは異なるプランを使用しているため、何らかのプラン ID を取得しても問題ありません。

それは実現可能ですか?どうすればいいですか?

4

2 に答える 2

1

USER許可IDの情報を保管するという特別なDB2レジスターがあります。Triggerの挿入または更新クエリでTIMESTAMPを使用するのと同じ方法で使用できます。

SET HIST_LAST_UPDATE_USER = USER;

スキーマに問題がない場合は、CURRENTSCHEMAまたはCURRENTSQLIDを使用することもできます。

于 2013-02-14T05:46:06.290 に答える
1

他の誰かがそれを必要とする場合に備えて、私は方法を見つけることができました:

GETVARIABLE(SYSIBM.SYSPLAN);
于 2013-02-14T16:26:01.623 に答える