在mysql中我写了存储过程,意图返回一个输出参数是一个游标,然后在盈盈程序里取得这个游标,读取数据记录。
问题是我该如何返回这个游标呢?
DELIMITER //
CREATE PROCEDURE PROC_TEST (OUT CUR CURSOR)
BEGIN
OPEN CUR FOR SELECT * FROM TEST_TABLE;
END;
//
DELIMITER ;这样写可行吗?
我之所以要这么写是为了与ORACLE数据库兼容,所以试图通过游标返回结果集。
问题是我该如何返回这个游标呢?
DELIMITER //
CREATE PROCEDURE PROC_TEST (OUT CUR CURSOR)
BEGIN
OPEN CUR FOR SELECT * FROM TEST_TABLE;
END;
//
DELIMITER ;这样写可行吗?
我之所以要这么写是为了与ORACLE数据库兼容,所以试图通过游标返回结果集。
MySQL中可以返回一个记录集 , 比如直接 select * from test_table; ,你在程序中直接调这个存储过程,存储过程会返回这些记录集到你的客户端应用程序中。
但无法返回游标。
现在是按ORACLE做的,它返回的结果集是按游标打开的方式返回的,那么MYSQL就要也用这个方式,我知道MYSQL可以直接返回结果集,但现在不能用这个方式,只能让它往ORACLE靠,也用游标返回。所以就有了如今这个问题。
真的没有解决方法吗?
如果是返回给另一存储过程,则可能试一下用临时表来解决,在你的这个proc_test中创建一个临时表供另一个存储过程来使用。 create temporary table xx.....
如果是返回给另一存储过程,则可能试一下用临时表来解决,在你的这个proc_test中创建一个临时表供另一个存储过程来使用。 create temporary table xx.....
这样可以吗