我编写了一个触发器来验证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时出错 我不知道如何解决这个问题
答案 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;