我将SQL Server存储过程转换为MySQL并遇到问题。我有一个IF THEN ELSE的存储过程,虽然没有给出错误,但也没有返回任何数据,我没有看到修复它的问题。查询本身是正确的并返回数据,但似乎不适用于存储过程。这是真实查询的简化版本,仅供参考。
用于创建存储过程的SQL是:
DROP PROCEDURE IF EXISTS `sp_GetVolunteerAwardsList`;
DELIMITER //
CREATE PROCEDURE `sp_GetVolunteerList`( IN glAward_in int)
BEGIN
DECLARE glAward_In INT;
DECLARE awardType_In varchar(100);
DECLARE awardActive INT;
IF (glAward_In) = 0 THEN
SELECT * FROM tbl_volunteer
ELSEIF (glAward_In) = 1 THEN
SELECT * FROM tbl_volunteerpositions
END IF;
END
//
与往常一样,任何帮助都会受到最高的赞赏。
答案 0 :(得分:1)
检查glAward_In参数或变量。 SP以小写形式接收参数glAward_in,i。 然后有一个DECLARE声明了一个不同的变量glAward_In,i是大写的。
if使用大写的glAward_In完成,而不是在SP的任何位置设置。并且小写参数不在SP中的任何地方使用。
我认为您必须以大写形式删除变量的DECLARATION,并使用小写参数进行IF评估。