Oracle 分页存储过程--超简单


  create or replace procedure proc_fenye(
       tableName in varchar2,    --表名
       pageNo in int,                  --当前显示页码
       pageSizee in int,               --每页显示数量
       pageCount out int,           --总页数(输出)
       pageTotal out int,             --总条数(输出)
       p_list out sys_refcursor      --查询到的数据集(输出)
       )
is
--定义sql语句 条件第几页
v_sql varchar(2000);
v_start number:=(pageNo-1)*pageSizee+1;
v_end number:=pageSizee*pageNo;
begin
          
                 v_sql:='select * from (select rownum rkey, e.* from '||tableName||' e) where rkey>='||v_start||' and rkey <='||v_end;
                 open p_list for v_sql;
                 v_sql:='select count(*) from '||tableName;
                 execute immediate v_sql into pageTotal;
                 pageCount:=ceil(pageTotal/pageSizee);
end;

----注意:返回值有三个,分别是查询到的游标集合数据 总页数 总记录条数    

本文出自 “筱小龙” 博客,谢绝转载!

你可能感兴趣的:(oracle,分页存储过程)