2010-04-09 5 views

Répondre

27

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 | 
+---------+ 
+1

« set @invar = (choisir ...) 'dans le premier exemple fonctionnera également. Je l'ai compris, mais merci. –

+0

Pourriez-vous partager votre solution trouvée? – Branislav

Questions connexes