我正在存储过程(2)中调用存储过程(1)。有没有一种方法可以传递(1)(2)的INTO参数的值,以便我可以返回到调用程序?谢谢。
最佳答案
是。您可以将参数定义为INOUT
或OUT
。
这允许该过程将值传递回调用方。
作为一个简短示例,proc1
具有定义为INOUT和OUT的参数。在proc1
中,将值分配给这些参数。
然后proc2
调用proc1
。 proc1
中设置的值可用于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