Comment enregistrer les résultats de l'instruction EXECUTE dans une variable? Quelque chose commeMySQL sauvegarde les résultats de EXECUTE dans une variable?
SET a = (EXECUTE stmtl);
Comment enregistrer les résultats de l'instruction EXECUTE dans une variable? Quelque chose commeMySQL sauvegarde les résultats de EXECUTE dans une variable?
SET a = (EXECUTE stmtl);
Si vous voulez faire une déclaration préparée, alors vous devez inclure la cession variable dans la déclaration de déclaration originale.
Si vous voulez utiliser une routine stockée, c'est plus facile. Vous pouvez affecter la valeur de retour d'une fonction stockée directement à une variable et les procédures stockées prennent en charge les paramètres.
Exemples:
instruction préparée:
PREPARE square_stmt from 'select pow(?,2) into @outvar';
set @invar = 1;
execute square_stmt using @invar;
select @outvar;
+---------+
| @outvar |
+---------+
| 1 |
+---------+
DEALLOCATE PREPARE square_stmt;
Fonction Stocké:
delimiter $$
create function square_func(p_input int) returns int
begin
return pow(p_input,2);
end $$
delimiter ;
set @outvar = square_func(2);
select @outvar;
+---------+
| @outvar |
+---------+
| 4 |
+---------+
procédure stockée:
delimiter $$
create procedure square_proc(p_input int, p_output int)
begin
set p_output = pow(p_input,2);
end $$
delimiter ;
set @outvar = square_func(3);
call square_proc(2,@outvar);
select @outvar;
+---------+
| @outvar |
+---------+
| 9 |
+---------+
« set @invar = (choisir ...) 'dans le premier exemple fonctionnera également. Je l'ai compris, mais merci. –
Pourriez-vous partager votre solution trouvée? – Branislav