ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 分页存储过程

分页存储过程

原创 Linux操作系统 作者:红叶DBA 时间:2011-04-12 16:44:51 0 删除 编辑

-- 分页存储过程:

-- 编写一个分页存储过程,要求:
--输入:表名,每页显示记录数,当前页;
--输出:总记录数,总页数,结果集;

create or replace package mypackage as
type rescursor is ref cursor;
end mypackage;

create or replace procedure fenye
(ptable in varchar2,
pnum in number,
ppage in number,
anum out number,
apage out number,
aresult out mypackage.rescursor)
is
v_sql varchar2(111);
v_pagebegin number:=pnum*(ppage-1)+1;
v_pageend number:=pnum*ppage;
begin
v_sql:='select * from (select a1.*,rownum rn from (select * from' || ptable ||
') a1 where rownum<='|| v_pageend ||') where rn>'|| v_pagebegin;
open aresult for v_sql;
v_sql:='select count(*) from'|| ptable;
execute immediate v_sql into anum;
apage:=(anum+pnum-1)/pnum;
close aresult;
end;

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/24465008/viewspace-692335/,如需转载,请注明出处,否则将追究法律责任。

上一篇: PL/SQL 函数 包
下一篇: 触发器
请登录后发表评论 登录
全部评论

注册时间:2010-08-19

  • 博文量
    54
  • 访问量
    69631