带有out参数的MySql存储过程调用在SqlFiddle上返回错误

时间:2015-03-13 10:26:02

标签: mysql sql stored-procedures sqlfiddle

我在 sqlfiddle

上为MySql架构创建了以下存储过程
create procedure foobar(out msg int)
begin
set msg = 100;
end//

当我运行查询以使用

访问out参数时
call foobar(@outval);
SELECT @outval;

我收到以下错误

ResultSet来自UPDATE。没有数据。

我不确定我做错了什么。请建议。

我将此作为参考MySQL create stored procedure syntax with delimiter

Sql小提琴链接:http://sqlfiddle.com/#!9/a2182/6

1 个答案:

答案 0 :(得分:2)

您在开始时缺少delimiter,因此它应该是

delimiter //
create procedure foobar(out msg int)
begin
 set msg = 100;
end;//

delimiter ;

这是mysql cli中的测试用例

mysql> delimiter //
mysql> create procedure foobar(out msg int)
    -> begin
    ->  set msg = 100;
    -> end;//
Query OK, 0 rows affected (0.05 sec)
mysql> delimiter ;
mysql> call foobar(@outval);
Query OK, 0 rows affected (0.01 sec)

mysql> SELECT @outval;
+---------+
| @outval |
+---------+
|     100 |
+---------+
1 row in set (0.01 sec)