首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >创建以SYS_REFCURSOR作为输出参数的mysql过程时出错

问创建以SYS_REFCURSOR作为输出参数的mysql过程时出错
EN

Stack Overflow用户
提问于 2013-09-30 18:14:30
回答 1查看 1.8K关注 0票数 0

我创建的过程有两个参数,一个是SYS_REFCURSOR类型的p_cursor (OUT参数),另一个是INT类型的p_rank (IN参数)。但它显示了一个错误。

代码语言:javascript
复制
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 ;

我得到的错误是,

代码语言:javascript
复制
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来说是错误的。请检查我的代码,让我认识到我的错误。提前感谢

EN

回答 1

Stack Overflow用户

发布于 2014-04-02 22:41:21

mysql没有像oracle那样的refcursor,如果你计划在mysql中编写一个返回多行/结果集的存储过程,只需这样做

代码语言:javascript
复制
DROP procedure IF EXISTS `sample`;
DELIMITER $$
CREATE  PROCEDURE `sample`(p_rank IN INT)
BEGIN
select * from MyTable where id=p_rank;
END$$
DELIMITER ;

调用sample();这将返回一个结果集。你可以使用它。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19091624

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档