oracle存储过程怎么返回结果集

createorreplacepackagemypageistypecursor_empisrefcursor;endmypage;-------------------... create or replace package mypage
is
type cursor_emp is ref cursor;
end mypage;
------------------------
create or replace procedure emp_pro(tableName varchar2,pageCount number,pageSize number,
allSize out number,allPage out number,mycursor out mypage.cursor_emp)
is
Sql_s varchar2(1000);
Sql_count varchar2(1000);
startSize number:=pageCount*pageSize-pageSize+1;
endSize number:=pageCount*pageSize;
begin

Sql_s:='select * from
(select t1.*,rownum rn from '||tableName||' t1 where rownum <= '||endSize||') where rn >= '||startSize;
open mycursor for Sql_s;
Sql_count:='select count(*) from emp';
execute immediate Sql_count into allSize;
if mod(allSize,pageSize)=0 then
allPage:=allSize/pageSize;
else
allPage:=allSize/pageSize+1;
end if;
end;

用什么方法返回值,具体怎么操作,谢谢!!
展开
 我来答
renfengjun1986
2014-01-13 · 知道合伙人软件行家
renfengjun1986
知道合伙人软件行家
采纳数:925 获赞数:1553
中国地质调查局特聘数据库专家 CSDN博客专家 百度知道数据库行家 炼数成金版主 想了解更多请关注我的博客:

向TA提问 私信TA
展开全部
你这不是已经写好了嘛。
外层调用程序只要声明变量mycursor并且作为参数传到emp_pro存储过程中,执行结束后就可以使用了。
nekchen
2014-01-13 · TA获得超过2501个赞
知道小有建树答主
回答量:1086
采纳率:42%
帮助的人:279万
展开全部
看你用什么语言,你的写法没有问题,一般就是用dataset接受返回的cursor就可以了。
更多追问追答
追问
就直接用plsql返回
追答
例子如下:

CREATE OR REPLACE FUNCTION MY_FUNCTION
RETURN SYS_REFCURSOR
AS
MY_CURSOR SYS_REFCURSOR;
BEGIN
OPEN MY_CURSOR FOR SELECT * FROM MY_TABLE;
RETURN MY_CURSOR;
END MY_FUNCTION;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式