0
我必須使用此觸發器才能在插入Oracle數據庫之前檢查電子郵件。代碼中有錯誤,但我無法找到它。任何人都知道我可以修復它嗎?我知道我可以使用一個簡單的約束,但在我的大學他們希望我使用這個。Oracle - 觸發器錯誤
create or replace TRIGGER email_check
BEFORE INSERT
ON CLIENTS
REFERENCING NEW AS NEW OLD AS OLD
FOR EACH ROW
DECLARE
tmpVar NUMBER;
TOTCOUNT NUMBER;
FIND1 NUMBER:= 0;
FIND2 NUMBER:= 0;
BEGIN
tmpVar:= 0;
SELECT CLIENT_SEQ.NEXTVAL INTO tmpVar
From dual;
:NEW.CLIENT_ID := tmpVar;
FIND1 := INSTR(:NEW.EMAIL,'@',1,1);
FIND2 := INSTR(:NEW.EMAIL,'.',1,1);
IF FIND1 > 0 AND FIND2 > 0 THEN * NEW.CLIENT_ID := CLIENT_SEQ.NEXTVAL
ELSE
RAISE_APPLICATION_ERROR(-20101,'Mail Address Problem');
END IF;
是現在的作品謝謝!在我的語法錯誤旁邊,是什麼問題?觸發器是錯誤的? – NikosL24
@ NikosL24 - 我提到了答案中所做的所有更改。 – GurV
如果instr(:new.email,'@',1,1)> 0和instr(:new.email,'。',1,1)> 0'只是一個精心設計的版本if: new.email比如'%[email protected]_%._%''? (這實際上更徹底,因爲'.''等應該被拒絕。) –