本文介绍了使用输出参数调用存储过程的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
这里我给出了存储过程GetAvgOut":
Herewith I have given the stored procedure "GetAvgOut":
delimiter // DROP PROCEDURE IF EXISTS GetAvgOut// CREATE DEFINER = 'MailIntimator'@'127.0.0.1' PROCEDURE GetAvgOut(OUT average INT,IN col VARCHAR(30),IN tbl VARCHAR(30)) READS SQL DATA COMMENT 'returns average' BEGIN SET @userVar = CONCAT(' SELECT AVG( ' , col , ' ) FROM ' , tbl ); PREPARE stmt FROM @userVar; EXECUTE stmt; END; // delimiter ;我尝试使用以下方法调用上述过程,
I tried calling the aforeseen procedure using,
CALL GetAvgOut(@a,'Population','city'); SELECT @a;"select @a" 返回空值.如何获得分配给输出参数@a"的平均值?
"select @a" returns null. How can I get the average which is assigned to out parameter "@a"?
推荐答案您没有在选择中设置 OUT 参数.
you are not setting the OUT parameter in your select.
尝试将您的声明更新为:
try updating your statement to:
SET @userVar = CONCAT('SELECT AVG( ' , col , ' ) INTO average FROM ' , tbl );更多推荐
使用输出参数调用存储过程
发布评论