ORA-04088:执行触发器HR.PHONE5时出错

时间:2019-12-04 10:58:53

标签: oracle database-trigger

我编写了一个触发器来验证oracle 10g中的电话号码,如下所示:

CREATE OR REPLACE TRIGGER PHONE5
  BEFORE INSERT OR UPDATE OF PHONE ON HR.TR
  FOR EACH ROW 
BEGIN 

  IF(LENGTH(:NEW.PHONE)>10)
  OR (LENGTH(:NEW.PHONE)<10)) THEN 
    RAISE_APPLICATION_ERROR(-20000, 'PHONE NUMBER SHOULD CONSIST OF 10 DIGITS');
  END IF;

END;

我收到ORA-04088错误:执行触发器HR.PHONE5时出错 我不知道如何解决这个问题

1 个答案:

答案 0 :(得分:2)

添加大量括号时,您会遇到一些语法错误。 您也可以删除IF的多余括号。检查以下代码:

CREATE OR REPLACE TRIGGER PHONE5
BEFORE INSERT OR UPDATE  OF PHONE ON HR.TR
FOR EACH ROW
BEGIN 
    IF LENGTH(:NEW.PHONE) > 10 OR LENGTH(:NEW.PHONE) < 10 THEN 
        RAISE_APPLICATION_ERROR(-20000,'PHONE NUMBER SHOULD CONSIST OF 10 DIGITS');
    END IF;
END;