2016-05-31 5 views
1

У меня есть хранимая процедура, которая была разработана в качествеПроцедура INOUT Параметр Mysql (не IN OUT)

OUT  id 
INOUT  name 
IN  password 
OUT  activate 

Я хочу, чтобы получить значения ID, имя, активный.

Когда я

CALL login(@id,'abc','abc',@activate); 
select @id as rm_out_param, @activate as active_out_param,@name as uname; 

он показывает мне ошибку

OUT or INOUT argument 2 is not a variable 

Когда я пытаюсь использовать

CALL login(@id,@name,'abc','abc',@activate); 
select @id as rm_out_param, @activate as active_out_param,@name as uname; 

он показывает мне ошибку

Invalid arguments supplied expected 4,5 given 

Как преодолеть это, чтобы получить результирующий вывод, как идентификатор, имя, активный

Спасибо и высоко ценится

+2

попробовать это: 'SET @name: = 'ABC'; ЗВОНОК логин (@ идентификатор, @ имя, 'ABC', @ Activate); ... ' – 1000111

+0

@ 1000111 Большое спасибо ... Это помогло. Пожалуйста, «ПОСЛАТЬ ВАШЕ ОТВЕТ», чтобы я мог отметить это как правильно. Спасибо за вашу помощь – Subhajit

ответ

0

У меня есть хранимая процедура, которая была разработана как

OUT  id 
INOUT  name 
IN  password 
OUT  activate 

Поскольку три из приведенных выше аргументов имеют тип OUT. Таким образом, вы должны передавать переменные вместо них не любое значение или строковый литерал.

Итак, вот как вы должны вызвать процедуру:

SET @name := 'abc'; 

CALL login(@id,@name,'abc',@activate); 

select @id as rm_out_param, @activate as active_out_param,@name as uname;