我有一个具有in和out参数的程序:

delimiter //
DROP PROCEDURE IF EXISTS empInfo ;
CREATE PROCEDURE empInfo (tblname VARCHAR(50),
                          clName VARCHAR(50),
                          out total INT)
BEGIN

 SET @s = CONCAT("SELECT count(", clName ,") into total FROM ", tblname );
 PREPARE stmt FROM @s;
 EXECUTE stmt;

END//


在这里,我将在mysql中调用上述过程。

mysql> CALL empInfo('emp','empid', @total);


它创建成功,但是当我使用它时-它无法正常工作。

最佳答案

对我来说似乎不错,但只是不知所措
这是解决方法:

delimiter //
DROP PROCEDURE IF EXISTS empInfo ;
CREATE PROCEDURE empInfo (in tblname VARCHAR(255), in clName VARCHAR(255))
BEGIN
  SET @s = CONCAT("SELECT count(", clName ,") into @total FROM ", tblname);
  PREPARE stmt FROM @s;
  EXECUTE stmt;
END//
delimiter ;
CALL empInfo('emo','empid');
select @total;

关于sql - 输入输出参数在MySQL中无法正常工作,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4151663/

10-11 05:59