我在 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
答案 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)