-1

我已经编写了这个 sql 函数并且得到了 1064 错误,我无法发现错误,请你帮帮我好吗?

错误代码:1064 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以ALN在第 1 行的 'INT) RETURNS VARCHAR(10) READS SQL DATA BEGIN Declare substat'附近使用正确的语法

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$$

分隔符;

4

1 回答 1

0

添加 varchar 的大小:

FUNCTION `substation1`(`subofficecode` INT,`productcat` VARCHAR**(10)**,`ALN` INT) RETURNS VARCHAR(10)
于 2013-08-13T14:29:57.290 回答