我已经编写了这个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;
答案 0 :(得分:0)
添加varchar的大小:
FUNCTION `substation1`(`subofficecode` INT,`productcat` VARCHAR**(10)**,`ALN` INT) RETURNS VARCHAR(10)