0

私が書いたこの関数のエラーを理解できません。型キャストを使用したものに違いないと思います。エラーがどこにあるかを確認するために部分的にコメントしようとしましたが、最初の IF の後、リターンの前のどこかにありました。誰かが私がそれを理解するのを手伝ってくれたら本当に感謝しています. エラーは 1064 で、' ' 行 33 付近で構文が欠落していることが示されています。

 DELIMITER $$



CREATE DEFINER=`root`@`localhost` FUNCTION `substation1`(`subofficecode` INT,`productcat` VARCHAR(5),`ALN` INT(1)) RETURNS VARCHAR(10)

READS SQL DATA

BEGIN

 DECLARE substation_ID VARCHAR(10);

 DECLARE pcat VARCHAR(2);

 DECLARE  i INT;



 IF (LENGTH (subofficecode) < 3) THEN

            SET substation_ID= CONCAT ('0',subofficecode);

 ELSE IF (LENGTH (subofficecode) < 2) THEN

            SET substation_ID= CONCAT ('00',subofficecode);

 ELSE

            SET substation_ID= CONCAT('',subofficecode);

 END IF;



 IF (STRCMP(productcat,'REF')=0) THEN

            SET pcat = '11';

 ELSE IF (STRCMP(productcat,'DF')=0) THEN

            SET pcat='12';

 ELSE IF (STRCMP(productcat,'MWO')=0) THEN

            SET pcat='13';

 ELSE IF (STRCMP(productcat,'WM')=0) THEN

            SET pcat='14';

 ELSE IF (STRCMP(productcat,'SPLIT')=0) THEN

            SET pcat='15';

 ELSE

            SET pcat='16'; 

 END IF;



SET i=(SELECT MAX(substationid) FROM substation) + 1;

SET substation_ID=CONCAT(substation_ID,pcat,ALN,i);



RETURN substation_ID;



END$$



DELIMITER ;
4

1 に答える 1