我用的是10.1版本,在用下面的语句创建触发器后,编译有错
Create or Replace Trigger Trg_ErrLog
  before insert  on "T_ErrLog"
  REFERENCING NEW AS NEW OLD AS OLD
  for each row
begin
    select s_ErrLogid.Nextval into :new.ErrLogID from DUAL;
end;

Create or Replace Trigger Trg_ErrLog
  before insert  on "T_ErrLog"
  REFERENCING NEW AS NEW OLD AS OLD
  for each row
begin
    :new.ErrLog:=s_ErrLogid.Nextval;
end;
都有问题,但用下面的方式编译没有问题,但插入记录时报错
Create or Replace Trigger Trg_ErrLog
  before insert  on "T_ErrLog"
  REFERENCING NEW AS NEW OLD AS OLD
  for each row
begin
     insert into "T_ErrLog" ("ErrLogID") values (s_ErrLogID.Nextval);
end;

解决方案 »

  1.   

    CREATE OR REPLACE TRIGGER TR_T_GQ_TZ_SYD_MX
    BEFORE INSERT ON T_GQ_TZ_SYD_MX FOR EACH ROW
    --表T_GQ_TZ_SYD_MX的字段id实现自增
    BEGIN
       SELECT S_T_GQ_TZ_SYD_MX.NEXTVAL INTO :NEW.ID FROM DUAL;
    END;我是这样写的,我不知道你的For Each row前的那REFERENCING NEW AS NEW OLD AS OLD是什么意思。
      

  2.   

    不要REFERENCING NEW AS NEW OLD AS OLD也不行的,我之前没加,后在网上看见有人这么写就加上了