我想在MySQL中将函数定义为存储过程。
我尝试了如下程序:
DELIMITER //
CREATE PROCEDURE getGroupUsers(IN groupId int) return curser
BEGIN
Declare services_curs cursor for SELECT `service_id`,`service_name`,`service_type_value`,`service_label`,`parent`,`service_group` from services;
open services_curs;
return services_curs;
END //
DELIMITER ;
但发生错误:
#1313 - RETURN is only allowed in a FUNCTION
我知道这是一个可怕的语法错误。什么是正确的语法?
答案 0 :(得分:2)
在过程中,您可以使用OUT
变量,这些变量将被填充并在过程外可用。如上所述,MySQL过程不返回值。你需要stored function
来实现这一目标。
可以找到关于如何使用OUT
变量的一个小例子in the documentation。
答案 1 :(得分:0)
在过程中使用select
返回值,否则使用function
returns
个值。{/ p>