2017-10-29 5 views
0

CREATE FUNCTION에 대한 코드를 디버깅 할 수 없습니다. 다음과 같은 오류가 발생합니다 :MySQL ERROR 1064 in CREATE FUNCTION

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 16

이것은 코드입니다.

DELIMITER $$ 
CREATE FUNCTION CHECK_STATUS(SAL FLOAT) RETURNS VARCHAR(10) 
DETERMINISTIC 
BEGIN 
    DECLARE STATUS VARCHAR(10); 
    SET STATUS = ""; 
    IF (SAL > 70000) THEN 
    SET STATUS = "A CLASS"; 
    ELSEIF (SAL > 50000) THEN 
    SET STATUS = "B CLASS"; 
    ELSE IF (SAL > 30000) THEN 
    SET STATUS = "C CLASS"; 
    ELSE 
    SET STATUS = "D CLASS"; 
    END IF; 
RETURN STATUS; # This is line 16 
END; 
$$ 

PS : 나는 동일한 제목과 다른 질문을 보았다 그러나 그들은 그래서 그들은 도움이되지 않았다 DELIMITER하고 있었다. 내 MySQL 버전은 5.7.19

+0

잘 읽은 것에서는 마지막 두 줄이 END $$가되어야하고 DELIMITER를 다시 재설정하는 새 줄이 있어야합니다. DELIMITER; - 이것은 테스트되지 않았습니다. – TimBrownlaw

답변

2

당신이 ELSEIFELSE IF을 변경하는 경우 그것은 작동합니다. ELSE으로 처리 된 다음 END IF없이 IF 절을 닫습니다.

+0

OP의 예에서 위의 각각 하나가 있다는 것을 보았습니다. – TimBrownlaw

+0

괜찮 았어. 그런데 '16 번 에러'라고 말한 이유는 무엇인가? @Michael O. –

+1

@NikhilWagh 함수의 끝까지 닫히지 않은 IF 절 (ELSE IF의 일부)이 있었기 때문에. –