oracle高效率分页存储过程代码

oracle高效分页存储过程代码
create or replace package p_page is
   -- author  : pharaohs
   -- created : 2006-4-30 14:14:14
   -- purpose : 分页过程
   type type_cur is ref cursor      --定义游标变量用于返回记录集
  
   procedure pagination(
   pindex in number                 --分页索引
   psql in varchar2                 --产生dataset的sql语句
   psize in number                  --页面大小
   pcount out number                --返回分页总数
   v_cur out type_cur               --返回当前页数据记录
   )

   procedure pagerecordscount(
   psqlcount in varchar2            --产生dataset的sql语句
   prcount   out number             --返回记录总数
   )

end p_page
/
create or replace package body p_page is

procedure pagination(
   pindex in number
   psql in varchar2
   psize in number 
   pcount out number
   v_cur out type_cur
  )
  as

   v_sql varchar2(1000)
   v_count number 
   v_plow number
   v_phei number
  begin
   ------------------------------------------------------------取分页总数
   v_sql := ' select count() from ('  || psql || ' )' 
    ute immediate v_sql into v_count
   pcount := ceil(v_count/psize)
   ------------------------------------------------------------显示任意页内容
   v_phei := pindex  psize + psize
   v_plow := v_phei - psize + 1
   --psql := ' select rownum rn t. from zzda t'               --要求必须包含rownum字段
   v_sql := ' select  from ('  || psql || ' ) where rn between '  || v_plow || '  and '  || v_phei 

   open v_cur for v_sql
 
  end pagination
 
  --
 
  procedure pagerecordscount(
   psqlcount in varchar2
   prcount   out number
   )
   as
 
    v_sql varchar2(1000)
    v_prcount number
  
   begin
 
    v_sql := ' select count() from ('  || psqlcount || ' )' 
     ute immediate v_sql into v_prcount
    prcount := v_prcount                   --返回记录总数                                                    
  
   end pagerecordscount
 
  --
end p_page
/
我的异常网推荐解决方案:oracle存储过程,http://www.myexception.cn/oracle-develop/177537.html

原作者:http://www.verydemo.com/demo_c158_i12179.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值