mysql存储过程2 IN SELECT中的参数

时间:2018-10-05 09:02:06

标签: mysql parameters procedure

我需要将具有2 IN Param的存储过程调用到存储过程中,并从SELECT返回2 IN Param。

Ex

创建过程“ xxxx” 开始

...  调用MyProcedure((从表WHERE Id = 1中选择SELECT InParam1,InParam2),@ Out1,@ Out2); ....

END

1 个答案:

答案 0 :(得分:0)

您不能将查询传递给存储过程。将值提取到局部变量中,并在过程调用中使用它们。同样,使用局部变量而不是用户定义的变量作为输出参数。

使用局部变量的原因是,当您调用另一个过程时,用户定义的变量可能会无意中更改。

CREATE PROCEDURE 'xxxx' 
BEGIN

declare v_in1 int;
declare v_in2 int;
declare v_out1 int;
declare v_out2 int;

  select InParam1,InParam2 into v_in1, v_in2
  FROM Table 
  WHERE Id=1;

  CALL MyProcedure (v_in1, v_in2, v_out1, v_out2); 
  ....
END