Oracle通用大数据量存储过程分页修正版
来源:互联网 发布:精通nginx中文 第三版 编辑:程序博客网 时间:2024/05/16 10:04
通用大数据量存储过程分页”代码在本地使用过程中发现有点不适合项目需求,所以抽时间修正了下,具体的不完善的地方表现为:
1、在第一页搜索的时候可以正常搜索出信息,但是如果跳转到地2页以后的分页上再搜索的时候就会出现找不到记录;
2、在比较大的的分页上搜索出多条记录时,如果搜索出来的记录的总页数比当前页码小,也不显示记录,因为搜索出的总记录的总页数比当前页数小;
下面修正版的分页存储过程修正了上面的错误,在此记录下,便于以后备用。
create or replace package body Pager is
procedure sp_Page
(
p_PageSize int,
p_PageNo int,
p_SqlSelect varchar2,
p_SqlCount varchar2,
p_OutRecordCount out int,
p_OutCursor out refCursorType
)
as
v_sql varchar2(3000);
v_count int; --总记录数
v_totalpage int; --总页数
v_curpage int; --当前页码
v_heiRownum int;
v_lowRownum int;
begin
execute immediate p_SqlCount into v_count;
p_OutRecordCount := v_count;
v_curpage := p_PageNo;
v_totalpage := floor(v_count / p_PageSize);
if mod(v_count,p_PageSize) != 0 then
v_totalpage := v_totalpage + 1;
end if;
if v_totalpage <= 0 then
v_totalpage := 1;
end if;
if v_totalpage < p_PageNo then
v_curpage := v_totalpage;
end if;
v_heiRownum := v_curpage * p_PageSize;
v_lowRownum := v_heiRownum - p_PageSize + 1;
dbms_output.put_line(v_curpage);
v_sql := 'SELECT *
FROM (
SELECT A.*, rownum rn
FROM ('|| p_SqlSelect ||') A
WHERE rownum <= '|| to_char(v_heiRownum) || '
) B
WHERE rn >= ' || to_char(v_lowRownum);
OPEN p_OutCursor FOR v_sql;
end sp_Page;
end Pager;
- Oracle通用大数据量存储过程分页修正版
- Oracle大数据量分页通用存储过程
- Oracle大数据量分页通用存储过程
- Oracle大数据量分页通用存储过程
- 大数据量分页 存储过程
- 大数据量分页存储过程效率测试
- 大数据量分页存储过程效率测试
- Oracle分页通用存储过程
- oracle存储过程大数据量insert
- oracle存储过程大数据量insert
- oracle存储过程大数据量insert
- oracle存储过程大数据量insert
- 千万数量级分页存储过程,大数据量分页存储过程,分页存储过程,sqlserver分页存储过程
- oracle 中通用的分页存储过程
- Oracle通用分页存储过程JDBC调用
- 一个比较实用的大数据量分页存储过程
- 一个比较实用的大数据量分页存储过程 (转)
- 一个比较实用的大数据量分页存储过程
- route
- git pull和git fetch命令
- Maven工程Cannot change version of project facet Dynamic Web Module to 2.3.
- android的一个下载框架
- Android
- Oracle通用大数据量存储过程分页修正版
- 整数排序
- Kibana 5.4.0 插件开发
- 应用程序(一)-linux应用程序学习之串口通讯编程
- jquery选择器详解
- Mybatis--XML配置
- git入门
- C++输入cin详解
- linux 添加nginx服务