`

oracle高效分页存储过程(百万数据级)

 
阅读更多

转自:http://www.cnblogs.com/ceamky/articles/1642367.html

create or replace procedure Pager(
page 
in number,--数据页数,从1开始
pageSize in number,--每页大小
tableName nvarchar2,--表名
strWhere nvarchar2,--where条件
Orderby nvarchar2,
numCount out 
number,--总记录数
v_cur out pkg_query.cur_query) is

strSql 
varchar2(2000);--获取数据的sql语句
pageCount number;--该条件下记录页数
startIndex number;--开始记录
endIndex number;--结束记录

--作者:王东升
--
时间:2010年1月8日14:54:32
--
分页获取数据

begin
  strSql:
='select count(1) from '||tableName;
  
if strWhere is not null or strWhere<>'' then 
     strSql:
=strSql||' where '||strWhere;
  
end if;  
  
EXECUTE IMMEDIATE strSql INTO numCount;
  
--计算数据记录开始和结束
  pageCount:=numCount/pageSize+1;
  startIndex:
=(page-1)*pageSize+1;
  endIndex:
=page*pageSize;
  
  strSql:
='select rownum ro, t.* from '||tableName||' t';  
  strSql:
=strSql||' where rownum<='||endIndex;
  
  
if strWhere is not null or strWhere<>'' then 
     strSql:
=strSql||' and '||strWhere;
  
end if;
  
  
if  Orderby is not null or Orderby<>'' then 
     strSql:
=strSql||' order by '||Orderby;
  
end if;
  
  strSql:
='select * from ('||strSql||') where ro >='||startIndex;  
  DBMS_OUTPUT.put_line(strSql);

  
OPEN v_cur FOR strSql; 
end Pager;

分享到:
评论

相关推荐

    oracle分页存储过程千万级

    oralce千万级数据存储过程分页技术,网上很稀有的哦~~

    千万数量级分页存储过程,可支持多表查询,任意排序

    千万数量级分页存储过程,可支持多表查询,任意排序

    sql oracle bootstrap海量存储过程jquery分页

    资源是有点贵,但是我做了3套不同的分页出来,算一下也就不贵了。 异步海量数据分页存储过程,源码可直接copy在项目中使用。

    ORACLE9i_优化设计与系统调整

    §1.1.1 Oracle数据字典 23 §1.1.2 表空间与数据文件 24 §1.1.3 Oracle实例(Instance) 24 §1.2 Oracle文件 26 §1.2.1 数据文件 26 §1.2.2 控制文件 26 §1.2.3 重做日志文件 26 §1.2.4 其它支持文件 26 §...

    Oracle数据库、SQL

    1.1表是数据库中存储数据的基本单位 1 1.2数据库标准语言 1 1.3数据库(DB) 1 1.4数据库种类 1 1.5数据库中如何定义表 1 1.6 create database dbname的含义 1 1.7安装DBMS 1 1.8宏观上是数据--&gt;database 1 1.9远程...

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 连接字符串

    其三、职业方向多:Oracle数据库管理方向、Oracle开发及系统架构方向、Oracle数据建模数据仓库等方向。 四、 如何学习 认真听课、多思考问题、多动手操作、有问题一定要问、多参与讨论、多帮组同学 五、 体系结构 ...

    Oracle事例

    14、查询从多少行到多少行的记录(可以用在web开发中的分页显示) select * from ( select rownum row_id,b.* from (select a.* from sys_oper a) b ) where row_id between 15 and 20 15、对公共授予访问权 ...

    PHP开发实战1200例(第1卷).(清华出版.潘凯华.刘中华).part1

    实例244 将文本文件中数据存储到数据库中 316 4.5 文件的压缩与解压 318 实例245 PHP中压缩RAR文件 319 实例246 PHP中将上传文件转换成RAR文件 320 实例247 PHP中对RAR文件进行解压 321 实例248 PHP中压缩ZIP文件 ...

    PHP开发实战1200例(第1卷).(清华出版.潘凯华.刘中华).part2

    实例244 将文本文件中数据存储到数据库中 316 4.5 文件的压缩与解压 318 实例245 PHP中压缩RAR文件 319 实例246 PHP中将上传文件转换成RAR文件 320 实例247 PHP中对RAR文件进行解压 321 实例248 PHP中压缩ZIP文件 ...

    asp.net知识库

    可按任意字段排序的分页存储过程(不用临时表的方法,不看全文会后悔) 常用sql存储过程集锦 存储过程中实现类似split功能(charindex) 通过查询系统表得到纵向的表结构 将数据库表中的数据生成Insert脚本的存储过程!!! ...

    JDBC 3.0数据库开发与设计

    9.2.1 使用JavaBean和连接池实现数据分页显示 9.2.2 不用连接池不用JavaBean的分页显示 9.2.3 使用JavaBean不使用连接池的分页显示 9.2.4 用JSP和Servlet配合实现分页显示 9.3 数据库图形文件的存取技术 9.3.1 ...

    db2-技术经验总结

    1.1. 创建一个返回结果集的存储过程\自定义函数 12 1.2. DB2 高级应用 14 1.3. 删除表数据时候出现日志已满的解决方法 24 1.4. DB2快照函数全解析 25 1.5. DB2中的22个命令小技巧 26 1.6. DB2实现类型ORACLE的一些...

    Java面试宝典2020修订版V1.0.1.doc

    19、oracle分页语句 47 20、从数据库中随机取50条 47 21、order by与group by的区别 47 22、commit在哪里会运用 47 23、行转列、列换行怎么转 48 24、什么是PL/SQL? 49 25、序列的作用 50 26、表和视图的关系 50 27...

    C#程序开发范例宝典(第2版).part13

    实例081 DataGridView控件的分页功能 108 实例082 从DataGridView控件拖放数据至TreeView控件 113 实例083 在DataGridView控件中实现合并单元格 116 实例084 在DataGridView控件中显示图片 118 实例085 为...

    FluentData微型ORM v2.3.0源码2012813

    支持存储过程。 支持分页。 查询自动映射或自定义映射到自己的实体类型(如产品类型)或动态类型(NET 4.0新)。 安全,使用索引或命名参数,以防止SQL注入。 强大的性能。 可以对任何现有的业务对象和业务层不需要...

    C#.net_经典编程例子400个

    68 实例059 在ListBox控件间交换数据 68 实例060 将数据库数据添加到组合框中 70 实例061 借助绑定控件实现数据选择录入 71 实例062 ListBox拒绝添加重复信息 72 2.6 选择类控件应用 73...

    全新JAVAEE大神完美就业实战课程 超150G巨制课程轻松实战JAVAEE课程 就业部分.txt

    Oracle_day04,游标,存储过程,存储函数,触发器 11-Maven(学习2天) Maven_day01._Maven安装.Maven整合SSH Maven_day02.Maven整合SSH.私服安装配置 12-SSH企业案例2_ERP_项目整合(学习15天) ERP_day01_ERP简介...

Global site tag (gtag.js) - Google Analytics