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

最佳答案

是。您可以将参数定义为INOUTOUT

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

作为一个简短示例,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

10-05 19:19