Create Or Replace Trigger tr_ti_pfxsjl
   Before insert
   On PFXSJL
Begin
    if
      GHDW IN  ('60002', '60003','60004','60005','60006','60010', '60011') AND THFS = 0
    then
     raise_application_error(-20001,'批发类型不对!请选择自提批发!');
    end if;
   End;

解决方案 »

  1.   

    CREATE OR REPLACE TRIGGER tr_ti_pfxsjl
      BEFORE INSERT ON PFXSJL
      FOR EACH ROW
    BEGIN
      IF instr(',60002,60003,60004,60005,60006,60010,60011,', ',' || GHDW || ',') > 0 AND THFS = 0 THEN
        raise_application_error(-20001, '批发类型不对!请选择自提批发!');
      END IF;
    END;
      

  2.   

    上面有点问题
    CREATE OR REPLACE TRIGGER tr_ti_pfxsjl
      BEFORE INSERT ON PFXSJL
      FOR EACH ROW
    BEGIN
      IF instr(',60002,60003,60004,60005,60006,60010,60011,', ',' || :new.GHDW || ',') > 0 AND
         :new.THFS = 0 THEN
        raise_application_error(-20001, '批发类型不对!请选择自提批发!');
      END IF;
    END;
      

  3.   

    获得新插入记录记录值前面加 :new.
      

  4.   

    楼上的都是正解,我要补充的是还有一个:old的关键字,lz有空研究一下都挺简单的!!
      

  5.   

    new,old 是两个重要的内存表,行级触发器中 (FOR EACH ROW)
    insert 用到new 表,delete 用到 old表,update用到new和old 表