0

特定のテーブルに挿入または更新されたすべてのレコードのentry_stamp列(type = )を更新するOracleトリガーを作成しようとしています。DATEこれが私のスクリプトです:

CREATE OR REPLACE TRIGGER mytable_entry_stamp 
AFTER INSERT OR UPDATE ON mytable FOR EACH ROW
BEGIN :NEW.entry_stamp := SYSDATE; END;

このエラーが発生します:

ORA-04084:このトリガー・タイプのNEW値は変更できません

4

1 に答える 1

2

Oracle / PLSQLから:更新後のトリガー:

  • :NEW値を更新することはできません。
  • :OLD値を更新することはできません。

AFTERMSSQLとは異なり、Oracleはトリガー内のレコードを更新できないようです。したがって、ロギング/監査の目的で予約されています。つまり、レコードを別のテーブルに挿入または更新できます。このトリガーをに変換した後BEFORE、問題なく動作しました。

于 2012-12-13T20:27:18.127 に答える