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

Спасибо ооочень много !!!! –

+0

Хорошо. Не забудьте принять ответ. – Peter