- 締切済み
トリガーでできますか?
Oracle9iを使用しています。 プログラムにはどう探しても記述がないはずなのですが、いつの間にか数件のデータが消えているという現象が起きました。(数回発生) どこから、どういうSQL文が実行されているのかが知りたいのですが、トリガーでdelete文が実行される直前(または直後)にこのSQL文を抜き取る事は可能ですか? また同時に、実行されているマシン名、ユーザ名、時間等も取れるといいのですが。 既出かもしれませんが、探し出せなかったので質問させていただきました。 よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- nora1962
- ベストアンサー率60% (431/717)
回答No.2
トリガ内でSYS_CONTEXT('USERENV', ... )関数使えなかったでしょうか?
- Shingoru77
- ベストアンサー率26% (23/87)
回答No.1
仮のテーブルを作成して そこにDELETE文のキーとなる項目をINSERTすればいいんじゃないでしょうか。 適当ですが、 ・キー項目(複数あるならカンマ区切り等、もしくはSQL文そのもの) ・時間(SYSDATEとか) トリガーはOracleサーバー内で動くので、ユーザーID、マシン名は取得できません。 どのくらいのシステムか分かりませんが、リソースに余裕があれば こういったことも可能だと思います。
質問者
お礼
ありがとうございました。 色々と試してみましたがうまくいきませんでした。
お礼
ありがとうございました。 色々と試してみましたがうまくいきませんでした。