我创建的过程有两个参数,一个是p_cursor类型的SYS_REFCURSOR(OUT参数),另一个是p_rank类型的INT(IN参数)。但它显示一个错误。
DELIMITER $$
CREATE PROCEDURE sp_student(p_cursor OUT SYS_REFCURSOR,p_rank IN INT)
BEGIN
OPEN p_cursor FOR SELECT * FROM student WHERE rank = p_rank;
END$$
DELIMITER ;
我得到的错误是
Error Code : 1064
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'OUT SYS_REFCURSOR,p_rank IN INT)
BEGIN
OPEN p_cursor FOR SELECT * FROM st' at line 1
我想我在语法上错误的SYS_REFCURSOR..请检查我的代码,让我意识到我的错误。先谢了
1条答案
按热度按时间g6ll5ycj1#
mysql没有像oracle那样的refcursor,如果你打算写一个存储过程,在mysql中返回多行/结果集,那就这样做吧
sample();这将返回一个结果集。你可以使用。