分页存储过程:
Create or replace procedure fenye (tablename in varchar2,
Pagesize int number,t_cursor testPackage.test_cursor,
Pagenow in number,rowscount out number
) is
V_sql varchar2(1000);
V_begin number :=(pagenow-1)*pagesize+1;
V_end number := pagenow*pagesize;
Begin
V_sql := ‘select * from (select t1.*,rownum rn from (select * from ’|| tablename ||’) t1 where rownum <=’|| v_end || ‘) where rn >= ‘ || v_begin;
Open t_cursor for v_sql;
V_sql := ‘select count(*) from ’|| tablename;
Execute immediate v_sql into rowscount;
If mod(rowscount,pagesize) =0 then
Mypagecount := rowscount/pagesize;
Else
Mypagecount := rowscount/pagesize+1;
End;