MySQL версия 8.0.13.Переменная сеанса, установленная внутри процедуры, против выходного параметра, связанного с переменной сеанса.Переменная сеанса используется для принятия параметра out, и процедура внутренне устанавливает эту же переменную сеанса.Переменная сеанса устанавливается перед настройкой выходного параметра.Когда закомментировано, я получаю ожидаемый ответ 12. Когда строки не закомментированы, я получаю 9. Мне любопытно, почему это происходит.
delimiter $$
drop procedure if exists foo $$
create procedure foo( IN x_in float , out x_out float)
BEGIN
-- select @v_out := sqrt(81);
set x_out = sqrt(x_in);
END $$
delimiter ;
call foo( 144 , @v_out);
select @v_out;