2017-02-20 99 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