2010-04-09 5 views

답변

27

준비된 명령문으로이를 수행하려면 변수 지정을 원래 명령문 선언에 포함시켜야합니다.

저장된 루틴을 사용하는 것이 더 쉽습니다. 저장 함수의 리턴 값을 직접 변수에 할당 할 수 있으며 저장 프로시 듀어는 매개 변수를 지원합니다.

예 :

준비된 문 :

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; 

저장 기능 :

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

저장 프로 시저 :

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

'(... 선택) = @invar 설정 '첫 번째 예제에서도 작동합니다. 알아 냈어. 고마워. –

+0

알아 낸 솔루션을 공유 할 수 있습니까? – Branislav

관련 문제