在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 删除数据库表中重复的记录,只保留一个,怎么做?
- 为什么我插入到MYSQL中的文字会变成问号啊?怎么解决啊??
- PostgreSQL 启动的问题
- mysql 文件读取
- 在MYSQL 中,如何判断一个varchar字段内容的长度。比如sqlserver中的len(字段名)?
- PostgreSQL如何调试存储过程
- 设计一个表遇到的问题
- phpmyAdmin安装后,登录错误提示MySQL said: #2003 - The server is not responding(我没有用过MySQL请问是怎么回事情)
- 数据库查询问题
- MySql 优化 in 和 exists
- 急求一个触发器
- 选择SQL语句问题
MySQL中可以返回一个记录集 , 比如直接 select * from test_table; ,你在程序中直接调这个存储过程,存储过程会返回这些记录集到你的客户端应用程序中。
但无法返回游标。
现在是按ORACLE做的,它返回的结果集是按游标打开的方式返回的,那么MYSQL就要也用这个方式,我知道MYSQL可以直接返回结果集,但现在不能用这个方式,只能让它往ORACLE靠,也用游标返回。所以就有了如今这个问题。
真的没有解决方法吗?
如果是返回给另一存储过程,则可能试一下用临时表来解决,在你的这个proc_test中创建一个临时表供另一个存储过程来使用。 create temporary table xx.....
如果是返回给另一存储过程,则可能试一下用临时表来解决,在你的这个proc_test中创建一个临时表供另一个存储过程来使用。 create temporary table xx.....
这样可以吗