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中创建一个自定义的数据分页存储过程,并给出C#代码的使用示例。 首先,我们创建一个名为`pkg_Pager`的存储过程包,它通常包括两个过程:一个用于计算总记录数,另一个用于获取指定范围...
自Oracle 10g开始,ROW_NUMBER()窗口函数提供了更灵活的分页方式。它可以为每个分组或分区分配一个唯一的行号,这使得在分页时可以对特定列进行排序。以下是一个示例: ```sql CREATE OR REPLACE PROCEDURE get_...
存储过程是 Oracle 10g 数据库中的一种技术,可以用来实现海量数据的分页查询。通过存储过程,可以将多个查询结果合并成一个查询结果,减少查询时间,提高查询效率。 本文提出了一种优化的海量数据分页查询解决方案...
#### 高效分页存储过程实例 设计存储过程时,考虑到性能优化尤为重要。例如,通过游标和循环控制,可以实现高效的数据分页,减少不必要的数据加载和处理。 #### 权限管理 - 创建存储过程需要`CREATE PROCEDURE`...
本文将详细介绍一个适用于Oracle数据库的高效分页存储过程,并对其内部实现原理进行深入剖析。 #### 存储过程概述 该存储过程名为`sp_paging`,其主要功能是基于输入参数来执行分页查询。具体参数包括: - `@...
综上所述,《在zSeries上使用Linux部署Oracle 10g数据库的经验分享》不仅提供了丰富的技术细节,还分享了在实际部署和运维过程中的宝贵经验,对于计划在IBM zSeries平台上实施Oracle 10g的企业和个人具有重要的参考...
在这个项目中,Oracle 10g将作为数据存储,开发者可能使用SQL查询语句配合Oracle的ROWNUM伪列来实现分页。ROWNUM在查询时会为每一行记录分配一个唯一的数字,通过限制查询的ROWNUM范围,可以实现分页效果。 项目的...
**Oracle10g** 是Oracle数据库的一个版本,提供了关系型数据库管理和数据存储功能。在项目中,Oracle10g作为后端数据库,存储应用程序所需的所有数据。开发者需要编写符合Oracle语法的SQL语句,并通过iBatis执行来...
首先,关于Oracle 11g的安装过程,需要特别注意的是,两个必需的数据库安装文件需要解压到同一个目录中。这是因为Oracle安装程序在安装过程中会需要检查这个目录下的文件,以确保安装路径符合要求。解压后,用户需要...
### Oracle10g学习知识点概览 #### 一、SQL基础与数据库概念 - **SQL概述**:SQL(Structured Query Language)是用于管理和操作关系型数据库的标准语言。 - **数据库定义**:数据库是一个长期存储在计算机内的有...
### Oracle 10G 培训日志知识点解析 #### 一、SQL概述与数据库概念 - **SQL概述**:SQL(Structured Query Language),即结构化查询语言,是用于管理关系型数据库的标准语言。 - **数据库定义**:数据库是一个长期...
### Oracle11g for AIX 安装指南详解 #### 安装概述 本文档旨在指导用户如何在AIX 7.1操作系统上成功安装Oracle 11.2.0.4单节点数据库。该文档详细列出了安装过程中的硬件、软件需求以及具体的安装步骤,确保用户...
在本系统中,Oracle10g存储了研究人员的所有信息,如研究成果、个人资料等,其ACID(原子性、一致性、隔离性和持久性)属性保证了数据的完整性和一致性。 查询系统的核心功能可能包括: 1. **用户认证和授权**:...
Oracle 10g Real Application Clusters (RAC) 是一种高可用性和性能增强的技术,它允许数据库在多台服务器上并行运行,提供故障切换和负载均衡能力。本参考手册详细介绍了如何规划、配置和安装Oracle RAC环境,特别...
标题中的“PostgreSQL 8.2, Oracle 10g, SQL Server 2005, MYSQL 5.1 脚本规范”涉及到的是四个不同的数据库管理系统(DBMS)的脚本编写标准和规范。这四个系统分别是PostgreSQL、Oracle、SQL Server和MySQL,它们都...
"李兴华Oracle笔记整理" 李兴华Oracle笔记整理是Oracle核心基础知识的总结,涵盖了...PL/SQL是Oracle提供的一种编程语言,允许用户编写存储过程、函数和触发器等。PL/SQL可以用来实现复杂的数据库操作和业务逻辑。
- **安装过程**:Oracle 10g 的安装过程相对复杂,需要按照官方文档的指导进行。 - **默认用户**: - **SYS 用户**:拥有最高权限,具有 `SYSDBA` 角色,可以创建数据库,初始密码为 `change_on_install`。 - **...