我需要帮助在Oracle DB中使用正则表达式创建触发器。我必须找到一个解决方案,当插入数据不像正则表达式时,它会显示一条错误消息。但我找不到,怎么做。
`CREATE OR REPLACE TRIGGER IC_KONTROLA
BEFORE INSERT OR UPDATE
OF IC_POJ
ON POJISTOVNA
FOR EACH ROW
DECLARE
IC_KONTROLA_SPATNE EXCEPTION;
BEGIN
IF (:NEW.IC_POJ NOT LIKE (REGEXP_LIKE (:NEW.IC_POJ,'\d{8}'))) THEN
RAISE IC_KONTROLA_SPATNE;
END IF;
EXCEPTION
WHEN IC_KONTROLA_SPATNE THEN
RAISE_APPLICATION_ERROR(-203, ' Identifikační číslo neodpovídá 8-číselnému vzoru!');
END;`
有什么想法吗?谢谢!
答案 0 :(得分:0)
您的REGEXP_LIKE
语法已关闭;
IF (:NEW.IC_POJ NOT LIKE (REGEXP_LIKE (:NEW.IC_POJ,'\d{8}'))) THEN
......应该只是......
IF NOT REGEXP_LIKE (:NEW.IC_POJ,'\d{8}') THEN