Такая процедура работает:
delimiter //
CREATE procedure catalog_by_prod (IN product TINYTEXT, OUT catalog TINYTEXT)
SELECT `cat_name` INTO catalog FROM `products` JOIN `catalog` USING (`id_cat`)
WHERE `prod_name`= product; //
delimiter ;
Вызов:
CALL catalog_by_prod ('Celeron D 320 2.4GHz', @catalog);
select @catalog;
А такая, где нужно вернуть два значения, выдает ошибку:
delimiter //
CREATE procedure catalog_by_prod (IN product TINYTEXT, OUT id_cat INT, OUT catalog TINYTEXT)
SELECT `id_cat`, `cat_name` INTO catalog FROM `products` JOIN `catalog` USING (`id_cat`)
WHERE `prod_name`= product; //
delimiter ;
CALL catalog_by_prod ('D 320 2.4GHz', @id, @catalog);
select @id, @catalog;
Ошибка: