• 締切済み

トリガーでできますか?

Oracle9iを使用しています。 プログラムにはどう探しても記述がないはずなのですが、いつの間にか数件のデータが消えているという現象が起きました。(数回発生) どこから、どういうSQL文が実行されているのかが知りたいのですが、トリガーでdelete文が実行される直前(または直後)にこのSQL文を抜き取る事は可能ですか? また同時に、実行されているマシン名、ユーザ名、時間等も取れるといいのですが。 既出かもしれませんが、探し出せなかったので質問させていただきました。 よろしくお願いします。

みんなの回答

  • nora1962
  • ベストアンサー率60% (431/717)
回答No.2

トリガ内でSYS_CONTEXT('USERENV', ... )関数使えなかったでしょうか?

junjun1971
質問者

お礼

ありがとうございました。 色々と試してみましたがうまくいきませんでした。

回答No.1

仮のテーブルを作成して そこにDELETE文のキーとなる項目をINSERTすればいいんじゃないでしょうか。 適当ですが、 ・キー項目(複数あるならカンマ区切り等、もしくはSQL文そのもの) ・時間(SYSDATEとか) トリガーはOracleサーバー内で動くので、ユーザーID、マシン名は取得できません。 どのくらいのシステムか分かりませんが、リソースに余裕があれば こういったことも可能だと思います。

junjun1971
質問者

お礼

ありがとうございました。 色々と試してみましたがうまくいきませんでした。

関連するQ&A