MySQL хранимая процедура 2 IN Param из SELECT - PullRequest
0 голосов
/ 05 октября 2018

Мне нужно вызвать хранимую процедуру с параметром 2 IN в хранимую процедуру, а параметр 2 IN возвращается из SELECT

Ex

CREATE PROCEDURE 'xxxx' BEGIN

.... CALL MyProcedure ((ВЫБЕРИТЕ InParam1, InParam2 ОТ таблицы WHERE Id = 1), @ Out1, @ Out2);....

END

1 Ответ

0 голосов
/ 05 октября 2018

Вы не можете передать запрос к хранимой процедуре.Получите значения в локальные переменные и используйте их в вызове процедуры.Кроме того, используйте локальные переменные вместо пользовательских переменных в качестве выходных параметров.

Причиной использования локальных переменных является то, что пользовательские переменные могут случайно измениться при вызове другой процедуры.

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
...