mysql错误#1064在一个简单的sql函数中

时间:2013-08-13 14:23:07

标签: mysql mysql-error-1064

我已经编写了这个sql函数并且得到了1064错误,我无法发现错误,你能不能把我搞砸了?

  

错误代码:1064   您的SQL语法有错误;检查与MySQL服务器版本对应的手册,以便在'ALN INT附近使用正确的语法。RETURNS VARCHAR(10)       读取SQL数据       开始        在第1行声明子站'

DELIMITER $$

CREATE DEFINER=`root`@`localhost` FUNCTION `substation1`(`subofficecode` INT,`productcat` VARCHAR,`ALN` INT) RETURNS VARCHAR(10)
READS SQL DATA
BEGIN
 DECLARE substation_ID VARCHAR(10);
 DECLARE pcat VARCHAR(2);
 DECLARE  i INT;
 IF (LENGTH(subofficecode) < 3)
 subofficecode=CONCAT("00",subofficecode);
 END IF;

 IF(productcat = "REF")
 pcat="11";
 ELSE IF (productcat = "DF")
 SET pcat="12";
ELSE IF (productcat = "MWO")
 SET pcat="13";
ELSE IF (productcat = "WM")
 SET pcat="14";
ELSE IF (productcat = "SPLIT")
 SET pcat="15";
 ELSE
 SET pcat="16";

 END IF;

 SET i=(SELECT MAX(substationID) FROM Substation) + 1;

 RETURN CONCAT(subofficecode,pcat,ALN,i);     

END$$

DELIMITER;

1 个答案:

答案 0 :(得分:0)

添加varchar的大小:

FUNCTION `substation1`(`subofficecode` INT,`productcat` VARCHAR**(10)**,`ALN` INT) RETURNS VARCHAR(10)