2017-02-20 63 views
0

在MySQL中執行下面的函數時出現語法錯誤。創建存儲函數時MySQL語法錯誤

CREATE FUNCTION FABC (P_MEMBER_EMAIL VARCHAR(30)) 
RETURNS int 
BEGIN 
DECLARE RESULT int; 
DECLARE V_DATE DATE; 
SELECT DOJ+365 INTO V_DATE FROM CHYK_MEMBER_MASTER 
WHERE UPPER(MEMBER_EMAIL)=UPPER(P_MEMBER_EMAIL) AND SUBSCRIPTION='Y'; 
IF V_DATE>SYSDATE THEN 
SET RESULT=1; 
ELSE 
SET RESULT=0; 
END IF; 
RETURN RESULT; 
END; 

的錯誤如下「#1064 - 你在你的SQL語法錯誤;檢查對應於您的MySQL服務器版本的在線使用近‘’正確的語法手冊4

不知道是什麼導致了這一點。誰能幫我?

回答

2

您需要設置一個分隔符,將告訴MySQL的函數定義的結束。

DELIMITER $$ 
CREATE FUNCTION `FABC`(`P_MEMBER_EMAIL` VARCHAR(30)) RETURNS int(11) 
BEGIN 
DECLARE RESULT int; 
DECLARE V_DATE DATE; 
SELECT DOJ+365 INTO V_DATE FROM CHYK_MEMBER_MASTER 
WHERE UPPER(MEMBER_EMAIL)=UPPER(P_MEMBER_EMAIL) AND SUBSCRIPTION='Y'; 
IF V_DATE>SYSDATE THEN 
SET RESULT=1; 
ELSE 
SET RESULT=0; 
END IF; 
RETURN RESULT; 
END$$ 
DELIMITER ; 
+0

謝謝你的sooo多!!!! –

+0

好的。不要忘記接受答案。 – Peter