02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
create
or replace procedure
fenye( v_in_sql
in varchar2, --待分页的SQL
v_in_pagesize
in number, --每页显示记录数
v_in_pagenow
in number, --当前页数
v_out_result
out cursor_type_page.my_cursor, --返回结果集
v_out_rows
out number, --记录总数
v_out_pagecount
out number --总页数
) is --定义变量 v_sql varchar2(2000);
v_start number;
v_end number;
begin --开始记录数
v_start:=v_in_pagesize*(v_in_pagenow-1)+1;
--结束记录数
v_end:=v_in_pagenow*v_in_pagesize;
--分页SQL实现
v_sql:= select
* from ( select
t.*,rownum rn from (v_in_sql) t
where rownum<= '||v_end||' )
where rn>= '||v_start||' ;
--打开游标
open
v_out_result for
v_sql; --查询共有多少条记录
select
count (*) into
v_out_rows from
(v_in_sql); --计算总页数
if mod(v_out_rows,v_in_pagesize)=0
then v_out_pagecount:=v_out_rows/v_in_pagesize;
else v_out_pagecount:=v_out_rows/v_in_pagesize+1;
end
if; end ; |
存储过程进行分页
最新推荐文章于 2022-04-18 15:58:50 发布