oracle 分页存储过程

--package 定义cursor
create or replace package fenye_cursor_package as
type fenye_cursor_type is ref cursor;
end fenye_cursor_package;

--建立分页存储过程
create or replace procedure pro_fenye 
(tabname in varchar, 
  record_num in number,--每页显示行数
  cur_page in number,   --当前页
  record_total_num out number,--总记录数 
  total_page_num out number, --总页数
  result_info_cursor out fenye_cursor_package.fenye_cursor_type) is
 
 
  v_sql varchar2(1000);--定义sql
  v_begin_num number:=(cur_page-1)*record_total_num; -- 定义起始数
  v_end_num number:= cur_page*record_total_num+1;--定义结束数
 
  begin 
      v_sql:= 'select * from (select fenye_1.*,rownum rn from   (select * from '||tabname
      ||') fenye_1   where rownum<='||v_end_num||') where rn>='||v_end_num;
      open result_info_cursor for v_sql;
      execute immediate v_sql into result_info_cursor;    
      v_sql:= 'select count(*) from '||tabname;
      execute immediate v_sql into   record_total_num;
     
      if mod(record_total_num,record_num)=0 then
          total_page_num:=   record_total_num/record_num;
      else
          total_page_num:=   record_total_num/record_num+1;
      end if;
 
  end;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值