Да, выходной параметр - это все, что нужно.
Я не смог найти правильный синтаксис вызова в руководстве или в Google.
Вы создаете процедуру следующим образом:
CREATE PROCEDURE myschema.add(IN a INT, IN b INT, OUT c INT)
BEGIN
SET c = a + b;
END
А потом назовите это так (это то, что я не мог понять):
DECLARE result INT DEFAULT 0;
CALL myschema.add(10, 20, result);
-- result == 30
И затем вывод заканчивается в поставляемой переменной result
.
Вы также можете иметь несколько OUT
параметров, а также INOUT
параметров.
Конечно, теперь это кажется очевидным. :)