使用输出参数调用存储过程 [英] calling stored procedure with output parameter

查看:59
本文介绍了使用输出参数调用存储过程的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

这里我给出了存储过程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 );

这篇关于使用输出参数调用存储过程的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆