1

トリガーの実行で問題が発生しています。トリガーの 1 つのコードの下に提供しています。

create or replace
TRIGGER abc_tr01
  BEFORE INSERT
  ON tablename
  FOR EACH ROW

BEGIN
  UPDATE tablename
     SET dtCreatedDate = SYSDATE
     WHERE incidentid = ( SELECT :NEW.incidentid 
                            FROM DUAL  );
END;

このトリガーは、テーブルの列 ( dtCreatedDate) の 1 つを更新し、そのテーブルで挿入が実行される前にtablename格納することになっています。SYSDATE

dtCreatedDateただし、フィールドの更新に失敗しています。

トリガーが有効になっていることを確認しました。挿入時も発射されてます。すぐに検出されたトリガーコードに構文エラーを挿入することで、それを確認しました。

SQL Developer 3.0 を使用しています。

助けてください。

4

1 に答える 1

1

UPDATEステートメントは必要ありません:

create or replace
TRIGGER abc_tr01
  BEFORE INSERT
  ON tablename
  FOR EACH ROW
BEGIN
  :new.dtCreatedDate := sysdate;
END;
/
于 2013-09-25T16:01:47.510 に答える