By sukun
1.表名
2.排序 列
3.排序条件[desc asc]
4.当前页
5.每页的条数
6.游标[out结果集,api中获取resultset]
7.总条数[out]
8.总页数[out]
过程可以按每列排序
create or replace procedure up_common_select1 ( v_tname in varchar2, --表名 v_sortCol in varchar2, --排序 列 v_sort in varchar2, --顺序 v_curPage in number, --当前页 v_piece in number, --每页条数 v_cursor out sys_refcursor, --结果集 v_count out int, --总条数 v_pageCount out int --总页数 ) as v_sql varchar2(1000); v_mod int; begin --get count v_sql:='select count(*) from '||v_tname; execute immediate v_sql into v_count; --get pageCount select mod(v_count,v_piece) into v_mod from dual ; if v_mod = 0 then begin v_pageCount:=v_count/v_piece; end; else begin v_pageCount:=floor(v_count/v_piece)+1; end; end if; -- concat sql
v_sql:='select * from (select rownum id,v.* from(select * from ' ||v_tname|| ' order by '||v_sortCol||' '||v_sort|| ') v) mv where mv.id between ' ||to_char((v_curPage-1)*v_piece+1)|| ' and ' ||to_char(v_curPage*v_piece); open v_cursor for v_sql; end;