createorreplace
procedure
prc_query
(p_tablename
invarchar2, --
表名 p_strwhere in
varchar2, --
查詢條件
p_ordercolumn in
varchar2, --
排序的列
p_orderstyle in
varchar2, --
排序方式
p_curpage in out number, --
當前頁 p_pagesize in out number, --
每頁顯示記錄條數
p_totalrecords out number, --
總記錄數
p_totalpages out number, --
總頁數 v_cur out sys_refcursor) --
返回的結果集
isv_sql
varchar2(1000) :=
''; --
sql語句
v_startrecord number; --
開始顯示的記錄條數
v_endrecord number; --
結束顯示的記錄條數
begin
--記錄中總記錄條數
v_sql :=
'select to_number(count(*)) from
'|| p_tablename ||
'where 1=1';
if p_strwhere is
notnull
or p_strwhere <>
''then
v_sql :
= v_sql ||
p_strwhere;
endif;
execute immediate v_sql into
p_totalrecords;
--驗證頁面記錄大小
if p_pagesize <
0then
p_pagesize :=0
;
endif
;
--根據頁大小計算總頁數
if mod(p_totalrecords,p_pagesize) =
0then
p_totalpages :
= p_totalrecords /
p_pagesize;
else
p_totalpages :
=floor( p_totalrecords / p_pagesize) +1;
endif;
--驗證頁號
if p_curpage <
1then
p_curpage :=1
;
endif
;
if p_curpage > p_totalpages then
p_curpage :
=p_totalpages;
endif;
--實現分頁查詢
v_startrecord := (p_curpage -
1) * p_pagesize +1;
v_endrecord :
= p_curpage *
p_pagesize;
v_sql :='
select * from (select a.*, rownum r from '||
'(select * from '||
p_tablename;
if p_strwhere is
notnull
or p_strwhere <>
''then
v_sql :
= v_sql ||
'where 1=1'||
p_strwhere;
endif;
if p_ordercolumn is
notnull
or p_ordercolumn <>
''then
v_sql :
= v_sql ||
'order by
'|| p_ordercolumn ||''
||p_orderstyle;
endif;
v_sql :
= v_sql ||
') a where rownum <=
'|| v_endrecord ||
') b where r >= '||
v_startrecord;
dbms_output.put_line(v_sql);
open v_cur for
v_sql;
end prc_query;
分頁儲存過程 分頁儲存過程
分頁儲存過程 alter proc dbo p pageshow pagesize int,每頁大小 currentpage int out,當前頁 housename nvarchar 50 房產名稱 totalcount int out,總記錄數 totalpage int out 總頁數 as...
分頁儲存過程
create proc p sobigo percentpage tblname varchar 255 t category 表名 strgetfields varchar 1000 需要返回的列 fldname varchar 255 排序的欄位名 pagesize int 10,頁尺寸 pag...
分頁儲存過程
create procedure pro select pageindex int,pagesize int as select student.sno,student.sname,student.s grade.math,grade.physics,grade.huaxue,grade.chine...