`
xiaof0535
  • 浏览: 2898 次
  • 性别: Icon_minigender_1
  • 来自: 济南
文章分类
社区版块
存档分类
最新评论

ORACLE10G 分页存储过程

阅读更多
CREATE OR REPLACE
PROCEDURE PAGING (TableName IN VARCHAR,Fields IN VARCHAR DEFAULT '*',OrderField IN VARCHAR,sqlWhere VARCHAR,pageSize IN
INT,pageIndex IN INT DEFAULT 1,totalPage OUT INT,totalRecord OUT INT,RS OUT RESULTSET.RS)
AS
tsql varchar(4000);
doPageIndex int:=pageIndex;--当前页码
StartRecord int;--开始点
EndRecord int;--结束点
begin
--commit;  --开始事务
--计算总记录数
If (sqlWhere is NULL) Then
tsql:='Select Count(*) as totalRecord From '||TableName;
Else
tsql:='Select Count(*) as totalRecord From '||TableName||' Where '||sqlWhere;
End If;
execute immediate tsql into totalRecord;
--计算总页数
    totalPage:=ceil((totalRecord+0.0)/pageSize);
If (sqlWhere is NULL) Then
tsql:='Select * From (Select ROW_NUMBER() Over(Order By '||OrderField||') growID,'||Fields||' From '||TableName;
    Else
tsql:='Select * From (Select ROW_NUMBER() Over(Order By '||OrderField||') growID,'||Fields||' From '||TableName||' Where '||sqlWhere;
End If;
--DBMS_OUTPUT.PUT_LINE(doPageIndex);
--处理页数超出范围情况
    If (pageIndex<=0) Then
doPageIndex:=1;
End If;
    If (pageIndex>totalPage) Then
        doPageIndex:=totalPage;
End If;
--处理开始点和结束点
StartRecord:=(doPageIndex-1)*pageSize+1;
EndRecord:=StartRecord+(pageSize-1);
--继续合成SQL语句
tsql:=tsql||') '||TableName||' Where growID Between '||StartRecord||' And '||EndRecord;
DBMS_OUTPUT.PUT_LINE(tsql);
open RS for tsql;
--rollback;
end PAGING;
分享到:
评论

相关推荐

    Oracle自定义数据分页存储过程

    本文将详细介绍如何在Oracle中创建一个自定义的数据分页存储过程,并给出C#代码的使用示例。 首先,我们创建一个名为`pkg_Pager`的存储过程包,它通常包括两个过程:一个用于计算总记录数,另一个用于获取指定范围...

    Oracle 存储过程分页

    自Oracle 10g开始,ROW_NUMBER()窗口函数提供了更灵活的分页方式。它可以为每个分组或分区分配一个唯一的行号,这使得在分页时可以对特定列进行排序。以下是一个示例: ```sql CREATE OR REPLACE PROCEDURE get_...

    Oracle 10g数据库海量数据分页查询优化.pdf

    存储过程是 Oracle 10g 数据库中的一种技术,可以用来实现海量数据的分页查询。通过存储过程,可以将多个查询结果合并成一个查询结果,减少查询时间,提高查询效率。 本文提出了一种优化的海量数据分页查询解决方案...

    oracle存储过程学习经典

    #### 高效分页存储过程实例 设计存储过程时,考虑到性能优化尤为重要。例如,通过游标和循环控制,可以实现高效的数据分页,减少不必要的数据加载和处理。 #### 权限管理 - 创建存储过程需要`CREATE PROCEDURE`...

    百万级的分页存储过程

    本文将详细介绍一个适用于Oracle数据库的高效分页存储过程,并对其内部实现原理进行深入剖析。 #### 存储过程概述 该存储过程名为`sp_paging`,其主要功能是基于输入参数来执行分页查询。具体参数包括: - `@...

    Experiences with Oracle 10g Database for Linux on zSeries

    综上所述,《在zSeries上使用Linux部署Oracle 10g数据库的经验分享》不仅提供了丰富的技术细节,还分享了在实际部署和运维过程中的宝贵经验,对于计划在IBM zSeries平台上实施Oracle 10g的企业和个人具有重要的参考...

    分页struts2+jsp+oracle10G

    在这个项目中,Oracle 10g将作为数据存储,开发者可能使用SQL查询语句配合Oracle的ROWNUM伪列来实现分页。ROWNUM在查询时会为每一行记录分配一个唯一的数字,通过限制查询的ROWNUM范围,可以实现分页效果。 项目的...

    struts1.2+batis+spring2.0+oracle10g集成例子(增加了分页功能)

    **Oracle10g** 是Oracle数据库的一个版本,提供了关系型数据库管理和数据存储功能。在项目中,Oracle10g作为后端数据库,存储应用程序所需的所有数据。开发者需要编写符合Oracle语法的SQL语句,并通过iBatis执行来...

    Oracle 11g的安装PDF

    首先,关于Oracle 11g的安装过程,需要特别注意的是,两个必需的数据库安装文件需要解压到同一个目录中。这是因为Oracle安装程序在安装过程中会需要检查这个目录下的文件,以确保安装路径符合要求。解压后,用户需要...

    Oracle10G培训日志

    ### Oracle 10G 培训日志知识点解析 #### 一、SQL概述与数据库概念 - **SQL概述**:SQL(Structured Query Language),即结构化查询语言,是用于管理关系型数据库的标准语言。 - **数据库定义**:数据库是一个长期...

    Oracle11g for AIX安装手册

    ### Oracle11g for AIX 安装指南详解 #### 安装概述 本文档旨在指导用户如何在AIX 7.1操作系统上成功安装Oracle 11.2.0.4单节点数据库。该文档详细列出了安装过程中的硬件、软件需求以及具体的安装步骤,确保用户...

    struts+hibernate3+spring2+oracle10g的研究人员查询系统

    在本系统中,Oracle10g存储了研究人员的所有信息,如研究成果、个人资料等,其ACID(原子性、一致性、隔离性和持久性)属性保证了数据的完整性和一致性。 查询系统的核心功能可能包括: 1. **用户认证和授权**:...

    Oracle 10g RAC参考手册(中文75页)

    Oracle 10g Real Application Clusters (RAC) 是一种高可用性和性能增强的技术,它允许数据库在多台服务器上并行运行,提供故障切换和负载均衡能力。本参考手册详细介绍了如何规划、配置和安装Oracle RAC环境,特别...

    PostgreSQL 8.2,Oracle 10g,SQL Server 2005,MYSQL 5.1 脚本规范

    标题中的“PostgreSQL 8.2, Oracle 10g, SQL Server 2005, MYSQL 5.1 脚本规范”涉及到的是四个不同的数据库管理系统(DBMS)的脚本编写标准和规范。这四个系统分别是PostgreSQL、Oracle、SQL Server和MySQL,它们都...

    李兴华Oracle笔记整理

    "李兴华Oracle笔记整理" 李兴华Oracle笔记整理是Oracle核心基础知识的总结,涵盖了...PL/SQL是Oracle提供的一种编程语言,允许用户编写存储过程、函数和触发器等。PL/SQL可以用来实现复杂的数据库操作和业务逻辑。

    韩顺平 oracle ppt

    - **安装过程**:Oracle 10g 的安装过程相对复杂,需要按照官方文档的指导进行。 - **默认用户**: - **SYS 用户**:拥有最高权限,具有 `SYSDBA` 角色,可以创建数据库,初始密码为 `change_on_install`。 - **...

Global site tag (gtag.js) - Google Analytics