我需要将具有2 IN Param的存储过程调用到存储过程中,并从SELECT返回2 IN Param。
Ex
创建过程“ xxxx” 开始
... 调用MyProcedure((从表WHERE Id = 1中选择SELECT InParam1,InParam2),@ Out1,@ Out2); ....
END
答案 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