Путаница в параметрах In и Out в хранимой процедуре Mysql - PullRequest
0 голосов
/ 26 апреля 2020

Я новичок в хранимых процедурах в Mysql и работаю над некоторыми базовыми c хранимыми процедурами для извлечения данных из одной таблицы на основе нескольких условий. Я немного запутался в параметрах IN и OUT, которые хранимая процедура принимает и возвращает соответственно.

Ниже приведен оператор выбора, для которого я создаю хранимую процедуру.

select name from item where id in
(select item_id from stock where created_by_id != processor_id and processor_id in 
(select id from users where type ='Manager')); 

name is a столбец в таблице элементов, из которого я хочу получить данные на основе условия. когда я выполняю вышеуказанный запрос ... он возвращает мне правильный вывод, как показано ниже.

#name
'Samsung'
'Pant'

, но когда я выполняю ту же инструкцию, используя хранимую процедуру, как показано ниже.

DROP PROCEDURE IF EXISTS sp_ItemName3;
delimiter //
CREATE PROCEDURE sp_ItemName3 (IN userType varchar(255), OUT Name varchar(255))
       BEGIN
       select name from item where id in
       (select item_id from stock where created_by_id != processor_id and processor_id in 
       (select id from users where type = userType));
       END
       //

Call sp_ItemName3('Manager',@Name);

После вызова хранимой процедуры он возвращает мне две строки NULL. какова причина? mysql верстак не возвращает никаких ошибок / исключений.

Исправьте меня ... если я делаю что-то не так ... !!

...