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;