回报这个错误 :Invalid stored procedure syntax
CREATE DEFINER=`root`@`localhost` FUNCTION `xxx`(merchantIds int) RETURNS int(11)
BEGIN
#Routine body goes here...
declare ide int(10);
declare showNam int(10);
declare serviceMerchantIde int(10);
declare serviceMerchantIde1 int(10);
declare str int(10) default 1;
declare isOnlySelfGoodse int default 1;
declare merchantIde int(25) default merchantIds;
WHILE str > 0 DO
SET serviceMerchantIde = (SELECT serviceMerchantId FROM ws_merchant WHERE id = merchantIde);
SET isOnlySelfGoodse = (SELECT isOnlySelfGoods FROM ws_merchant WHERE id = merchantIde);
if(serviceMerchantIde = -1) THEN
SET showNam = merchantIde;
if(serviceMerchantIde != -1) THEN
SET ide = serviceMerchantIde;
SET serviceMerchantIde1 = (SELECT serviceMerchantId FROM ws_merchant WHERE id = ide);
SET isOnlySelfGoodse = (SELECT isOnlySelfGoods FROM ws_merchant WHERE id = ide);
if(serviceMerchantIde1 = -1 && isOnlySelfGoodse = 1) THEN
SET showNam = merchantIde;
SET str = 0 ;
ELSE if(isOnlySelfGoodse = 2 ) THEN
SET showNam = serviceMerchantIde;
SET str = 0 ;
ELSE if(serviceMerchantIde != -1 && isOnlySelfGoodse = 1) THEN
SET merchantIde = (SELECT serviceMerchantId FROM ws_merchant WHERE id = serviceMerchantIde);
SET str = 1;
END if;
END if;
END if;
END if;
END if;
END WHILE;
RETURN showNam;
END