分页存储过程,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;























