我试图在mysql中创建一个procdure,返回一个带有结果的数组,我以前用oracle引用游标,但在mysql中不知道如何继续, 我也要传递参数......
任何人都知道我该怎么做,或者有一个例子给我看?非常感谢你......
答案 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。