MySQL存储过程OUT参数返回为null(NO LOCAL VARIABLE DECLARED)

时间:2013-08-07 19:20:05

标签: mysql stored-procedures null return-value

我正在尝试调试此问题。我已经走到了极端的极端,我只想弄清楚为什么即使将return var显式设置为某个值,MySQL也会返回null。

DELIMITER $$

CREATE DEFINER=`root`@`localhost` PROCEDURE `foo`(
    OUT numberExpectedToFill int(11))
    DETERMINISTIC
BEGIN

    set numberExpectedToFill := 23;
    commit;
 END

所以,我编写了一个脚本来调用它,返回值为NULL。为什么呢?

prepare s from 'call `test_schema`.`foo`(@output)';
execute s;
select @output

1 个答案:

答案 0 :(得分:0)

这是最意想不到的......因为无论是否使用预准备语句,这都适用于sqlfiddle:http://sqlfiddle.com/#!2/d4ddf/1http://sqlfiddle.com/#!2/d4ddf/2

可能是权限有问题(可能会发出错误信号,想到)?!?

编辑:仍然猜测 - 您确定从正确的架构中调用foo吗? O_O