mysql存储过程2 in param from select

wlzqhblo  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(606)

我需要将一个具有2 in param的存储过程调用到一个存储过程中,并从select返回2 in param
前任
创建过程“x”开始
.... call myprocedure((从id=1的表中选择inparam1、inparam2),@out1,@out2); ....
结束

tktrz96b

tktrz96b1#

不能将查询传递给存储过程。将这些值提取到局部变量中,并在过程调用中使用这些值。另外,使用局部变量而不是用户定义的变量作为输出参数。
使用局部变量的原因是,当您调用另一个过程时,用户定义的变量可能会不经意地更改。

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

相关问题