CREATE OR REPLACE TRIGGER OnlyPositiveNum_tmptbl
  BEFORE INSERT OR UPDATE OF num_col 
  ON temp_table 
  FOR EACH ROW
BEGIN
  IF :NEW.num_col < 0 THEN
    RAISE_APPLICATION_ERROR(-20100, 'Please insert a postive value');
  END IF;
END OnlyPositiveNum_tmptbl;
/用new 或者 old 的时候 需要加上:号

解决方案 »

  1.   

    这种形式就不需要:
    CREATE OR REPLACE TRIGGER OnlyPositiveNum_tmptbl
      BEFORE INSERT OR UPDATE OF num_col 
      ON temp_table 
      FOR EACH ROW
      when (NEW.num_col < 0)
    BEGIN
        RAISE_APPLICATION_ERROR(-20100, 'Please insert a postive value');
    END OnlyPositiveNum_tmptbl;
      

  2.   

    CREATE OR REPLACE TRIGGER OnlyPositiveNum_tmptbl
      BEFORE INSERT OR UPDATE OF num_col 
      ON temp_table 
      FOR EACH ROW
    BEGIN
      IF :NEW.num_col < 0 THEN
        RAISE_APPLICATION_ERROR(-20100, 'Please insert a postive value');
      END IF;
    END OnlyPositiveNum_tmptbl;