Oracle数据库实现分页功能

清华大佬耗费三个月吐血整理的几百G的资源,免费分享!....>>>

create or replace procedure pro_page(table_name in varchar2,page in  number,line in number,in_where in varchar2,p_cursor out sys_refcursor)
 as
 --out 返回参数
 --in 输入参数
 --in out  返回参数
  v_sql varchar2(200);
  v_where varchar2(200);
 begin
   ---判断条件
   if length(in_where) = 0 or in_where is null then 
     v_where := '1=1';
   else
     v_where := in_where;
   end if;
  --获得sql语句
     v_sql:='select * from( select  t1.*,rownum num from '||t_name||' t1 where rownum<= ' ||(page*line)||' and '||v_where
     ||') where num >= ' || ((page-1)*line);
  --执行sql语句
  open p_cursor for v_sql;
 end pro_page;