分页存储过程,Package头代码:































Package体代码:

































































--如果n_pageindex大于实际的页数,则取实际页数
if
n_PageIndex
>
round
((mTotalRecords / n_PageSize) + 0.5)
then
n_PageIndex :
=
round
((mTotalRecords / n_PageSize) + 0.5)
;
end
if
;
end
;
end
if
;
Start_page :
=
(n_PageIndex
-
1
)
*
n_PageSize
+
1
;
End_page :
=
n_PageIndex
*
n_PageSize;
vSql :
=
'
SELECT * FROM (SELECT A.*, rownum r FROM (
'
||
vSql
||
'
) A WHERE rownum <=
'
||
End_page
||
'
) B WHERE r >=
'
||
Start_page;
--
vSql := 'SELECT * FROM (SELECT A.*, rownum r FROM ( select * from User_info where user_no like ''0000514268%'' order by user_no desc ) A WHERE rownum <= 10 ) B WHERE r >= 1';
--
Dbms_Output.put_line(vSql);
--
mSql := vSql ;
Open
mDateSet
for
vSql;

exception
When
Invalid_Input
Then
open
mDateSet
for
select
null
from
dual;
end
;
--
DBMs_output.put_line(mTotalRecords);
end
return_DataSet;
end
DB_Oper;






















