MySQL中的Oracle REF CURSOR相当于什么?

时间:2011-08-23 02:47:48

标签: mysql stored-procedures select cursor

我试图在mysql中创建一个procdure,返回一个带有结果的数组,我以前用oracle引用游标,但在mysql中不知道如何继续, 我也要传递参数......

任何人都知道我该怎么做,或者有一个例子给我看?非常感谢你......

2 个答案:

答案 0 :(得分:5)

MySQL没有类似Oracle的refcursor。如果您打算编写一个在MySQL中返回多行/结果集的存储过程,那么只需执行

DROP procedure IF EXISTS `sample`;
DELIMITER $$
CREATE  PROCEDURE `sample`(p_rank IN INT)
BEGIN
select * from MyTable where id=p_rank;
END$$
DELIMITER ;

并致电sample();。它将返回您可以使用的结果集。

答案 1 :(得分:1)

MySQL中没有REF CURSOR的模拟。存储过程和函数允许仅传递和返回标量数据类型,请参阅此处的参考 - CREATE PROCEDURE and CREATE FUNCTION Syntax

MySQL无法使用数组运行。解决方法是使用table(或TEMPORARY TABLE)。

另外 - 利用stored procedure debugger中的可视对象编辑器和dbForge Studio for MySQL