Я новичок в хранимых процедурах в 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 верстак не возвращает никаких ошибок / исключений.
Исправьте меня ... если я делаю что-то не так ... !!