Если я создаю хранимую процедуру в MySQL с параметром OUT или INOUT, это не сработает. Даже если оставить хранимую процедуру пустой. DDL выглядит следующим образом:Параметр OUT или INOUT не работает
CREATE DEFINER=`root`@`localhost` PROCEDURE `testing_inout`(`a` int,INOUT `b` int)
BEGIN
END
Первый параметр - это обычный параметр IN. Второй является INOUT paremeter (даже если он установлен, как OUT та же проблема продолжает существовать)
Когда я вызвать эту хранимую процедуру, я получаю сообщение об ошибке с указанием:
OUT или INOUT аргумент 2 для обычного db_name. testing_inout не является переменной или NEW-переменной в триггере BEFORE.
Эта ошибка сохраняется, даже если код написан внутри хранимой процедуры. Я запускаю mysql версию 5.1.41.
Это большая проблема для меня, потому что я не могу вывести результат рекурсивной хранимой процедуры из-за этой ошибки.
Вероятно, вы должны показать оператор, который вызывает процедуру. –
Я не думаю, что проблема связана с SP, но триггер 'BEFORE', из которого вызывается SP. –
Я согласен с тем, что проблема должна быть с триггером BEFORE, из которого вызывается SP. Эта ошибка возникает, когда я запускаю SP через Navicat. Но когда я вызываю SP из другого SP, я не получаю ошибку. Вывод: способ, которым кнопка запуска Navicat вызывает SP, не работает с аргументами OUT и INOUT. – prince