【问题标题】:MySQL stored procedure OUT param returned as null (NO LOCAL VARIABLE DECLARED)MySQL 存储过程 OUT 参数返回为 null (NO LOCAL VARIABLE DECLARED)
【发布时间】:2013-08-07 19:20:05
【问题描述】:

我正在尝试调试此问题。我已经走极端了,我只是想弄清楚为什么即使 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

【问题讨论】:

    标签: mysql stored-procedures null return-value


    【解决方案1】:

    这是最出乎意料的......因为无论是否使用准备好的语句,这都适用于 sqlfiddle:http://sqlfiddle.com/#!2/d4ddf/1http://sqlfiddle.com/#!2/d4ddf/2

    也许权限有问题(可能会表示错误)?!?

    编辑:仍然猜测——你确定要从正确的模式调用foo 吗? O_o

    【讨论】:

    • 啊,你是对的。这么笨。我有几个版本的架构并且有一个错误的版本。我的眼睛不行了。
    猜你喜欢
    • 1970-01-01
    • 2012-11-29
    • 1970-01-01
    • 2020-05-12
    • 1970-01-01
    • 1970-01-01
    • 2020-01-09
    • 2021-06-11
    • 1970-01-01
    相关资源
    最近更新 更多