将存储过程结果传递给参数

时间:2016-01-19 16:14:51

标签: mysql stored-procedures parameters

我在存储过程(2)中调用存储过程(1)。有没有办法传递(1)INTO参数(2)的值,以便我可以返回调用程序?谢谢。

1 个答案:

答案 0 :(得分:1)

是。您可以将参数定义为 INOUT OUT

这允许该过程将值传递回调用者。

作为一个简短示例,proc1具有定义为INOUT和OUT的参数。在proc1中将值分配给这些参数。

proc2来电proc1proc1中设置的值可用于proc2

DELIMITER ;

CREATE PROCEDURE proc1(INOUT ua INT, OUT ob INT)
BEGIN
   SET ua = ua + 1;
   SET ob = 1;
END$$

CREATE PROCEDURE proc2()
BEGIN
   DECLARE a INT;
   DECLARE b INT;
   SET a = 0;
   SET b = 0;
   CALL proc1(a,b);
   SELECT a, b;
END$$

DELIMITER ;

CALL proc2();

   a     b
----  ----
   1     1