分页

create or replace procedure fenye  ( 
pageSize in  number,   
pageCurrent  in  number, 
sumRows  out number, 
pageCount out number, 
fenye_cursor out sys_refcursor
)
is

v_sql varchar2(1000);
v_begin number := (pageNow-1)*page_size+1;
v_end number := pageNow*page_size;

begin  
v_sql :='select count(*) from tpg_ryxx';
execute immediate v_sql into myrows;
if mod(myrows,page_size) =0
  then   myPageCount := myrows/page_size;
else myPageCount := ceil(myrows/page_size);
v_sql := 'select ryxm from (select t1.*,rownum rn from (select * from  tpg_ryxx order by cjsj )t1 where rownum<='||v_end||' )where rn>='||v_begin;
open my_cursor for v_sql;
end if;

end;
--psql中调用


declare 
v_sumRows   number;
v_pageCount number;
fenye_cursor sys_refcursor ;
v_row varchar2(100);
begin
  fenye1(60,2,v_sumRows,v_pageCount,fenye_cursor);
  fetch fenye_cursor into v_row;
  while fenye_cursor%found loop
    dbms_output.put_line(v_row);
  fetch fenye_cursor into v_row;
    end loop;
   close fenye_cursor;
   dbms_output.put_line(''|| v_sumRows ||'' || ''|| v_pageCount  ||'');
  end;

 

posted on 2014-11-28 22:16  相约future  阅读(130)  评论(0编辑  收藏  举报