oracle 中通用的分页存储过程
2011-08-31 17:35
357 查看
----------------------------------------------------------------------------------
-------------------------------(通用)分页的存储过程----------------------
----------------------------------------------------------------------------------
--创建包
create or replace package page_package
as
type p_cursor is ref cursor;
end page_package;
--创建存储过程
create or replace procedure fenye_proc
(
--定义要查询的表
tableName in varchar2,
--当前页数
currentPage in number,
--每页显示的记录数
pagesize in number,
--总记录数
totalCount out number,
--总页数
totalPage out number,
--返回的结果集
page_cursor out page_package.p_cursor
)as -- 声明变量部分
--存放 SQL 语句
v_sql varchar2(200);
--页码开始
v_begin number := (currentPage - 1)*pagesize + 1;
--页码结束
v_end number := pagesize*currentPage;
begin -- 语句执行块部分
--分页的 SQL 语句
v_sql := 'select * from (select a.*,rownum rn from (select * from '||tableName||') a where rownum <= '||v_end||') where rn >='||v_begin;
--打开游标,并让游标执行结果集
open page_cursor for v_sql;
--求总记录数
v_sql := 'select count(*) from '||tableName;
execute immediate v_sql into totalCount;
-- 求总页数
if mod(totalCount,pagesize)=0 then
totalPage := totalCount/pagesize;
else
totalPage := totalCount/pagesize + 1;
end if;
end;
相关文章推荐
- Oracle 存储过程之通用分页查询
- ORACLE通用分页存储过程及.NET调用方式
- Oracle大数据量分页通用存储过程
- Oracle通用分页存储过程和AspNetPage结合
- Oracle通用分页存储过程和AspNetPage结合
- Oracle通用分页存储过程和AspNetPage结合
- Oracle大数据量分页通用存储过程
- java+oracle的存储过程开发案例(包含了oracle存储过程的通用分页方法、java的工厂类)
- Repeater分页(Oracle通用分页存储过程和AspNetPage结合)(原创)
- Oracle大数据量分页通用存储过程
- Oracle大数据量分页通用存储过程
- Oracle大数据量分页通用存储过程
- 通用高效分页存储过程代码
- sql server 的通用分页显示存储过程
- [百万级]通用存储过程.分页存储过程
- 通用分页存储过程
- 通用分页显示查询存储过程(SQL Server)
- SQL通用存储过程分页,支持多表联合
- Oracle存储过程与游标结合的分页