2011-05-06 3 views
1

mysql에 저장된 함수를 배우기 시작했다. 누군가 나에게 아래에 무엇이 잘못 됐는지 말해 줄 수 있습니까?mysql 함수가 필요하다.

Phpmyadmin이 말합니다. SQL 구문에 오류가 있습니다. 올바른 구문이 'return NAME'근처에서 사용되도록 MySQL 서버 버전에 해당하는 설명서를 확인하십시오. END // '라인에서 19

DELIMITER // 
DROP FUNCTION IF EXISTS getName // 
CREATE FUNCTION getName(type CHAR(10), id int) RETURNS CHAR(50) DETERMINISTIC 
BEGIN 
    DECLARE NAME CHAR(50); 
    CASE type 
     WHEN 'offer' THEN 

     SELECT Type_Name INTO NAME FROM otypes WHERE Type_Id = id;   

     WHEN 'service' THEN 

     SELECT ServiceType_Name INTO NAME FROM stypes WHERE ServiceType_Id = id;  

     WHEN 'store' THEN 

     SELECT Store_Name INTO NAME FROM stores WHERE Store_Id = id;  

    END CASE 

    return NAME; 
END // 

답변

1

세미콜론을 넣어 END CASE 후 :

DELIMITER // 
DROP FUNCTION IF EXISTS getName // 
CREATE FUNCTION getName(type CHAR(10), id int) RETURNS CHAR(50) DETERMINISTIC 
BEGIN 
    DECLARE NAME CHAR(50); 
    CASE type 
     WHEN 'offer' THEN 

     SELECT Type_Name INTO NAME FROM otypes WHERE Type_Id = id;   

     WHEN 'service' THEN 

     SELECT ServiceType_Name INTO NAME FROM stypes WHERE ServiceType_Id = id;  

     WHEN 'store' THEN 

     SELECT Store_Name INTO NAME FROM stores WHERE Store_Id = id;  

    END CASE; 
--  ^

    return NAME; 
END // 
+0

아, 알았어 .. 빠른 답장을 보내 주셔서 대단히 감사합니다. – suraj

0

당신이 있어야 할 ;

END CASE 

return NAME; 

누락

END CASE; 

return NAME; 
관련 문제