触发器不适用于Oracle SQL Developer

时间:2013-09-25 15:27:28

标签: sql oracle triggers

我遇到执行触发器的问题。我在下面提供了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表的一列(tablename),并在该表上执行插入之前将SYSDATE存储在其中。

但是无法更新dtCreatedDate字段。

我已检查过启用了触发器。它也在插入时被解雇了。我通过在触发器代码中注入一个语法错误来检查它,并迅速检测到它。

我正在使用SQL Developer 3.0。

请帮忙。

1 个答案:

答案 0 :(得分:1)

无需UPDATE声明:

create or replace
TRIGGER abc_tr01
  BEFORE INSERT
  ON tablename
  FOR EACH ROW
BEGIN
  :new.dtCreatedDate := sysdate;
END;
/