CREATE OR REPLACE PROCEDURE "CCUSER"."PRO_PAGETEST" ( tb varchar2,--表名 col varchar2,---按该列来进行分页 collist varchar2,--要查询出的字段列表,*表示全部字段 condition varchar2,--查询条件 orderby integer,--排序 0=升序,1=降序 pagesize integer,--指定每页记录条数 page integer,--指定页 pages out integer--总记录数 ) as sqlstr1 varchar2(4000);--分页查询的SQL sqlstr2 varchar2(1500);--求总页数据的SQL orderbystr varchar2(150);--排序串 pageTotal number;--总页数 tmpCount integer; type ref_cur is ref cursor;--定义游标类型 v_tabCursor ref_cur;--定义游标变量 --halfpageTotal integer;--半页数 begin --========求总页数================================ sqlstr2:='SELECT COUNT(*) FROM '||tb||condition; execute immediate sqlstr2 into tmpCount; --================================================ pages:=tmpCount; if(orderby=0) then orderbystr:=' ORDER BY '||col||' ASC'; else orderbystr:=' ORDER BY '||col||' DESC'; end if; --=======求页数=================================== pageTotal:= pages/pagesize; if(pagesize/2>mod(pages,pagesize)) then pageTotal:=pageTotal+1; end if; --halfpageTotal:=pageTotal/2; --================================================ sqlstr1:='SELECT '||collist||' FROM (SELECT ROWNUM rownumindex,'||collist||' FROM '||tb||' '||condition||' and rownumindex<='||(pagesize*page)||orderbystr||') PAGESTBTMP where PAGESTBTMP.rownumindex>'||(pagesize*(page-1))||' and PAGESTBTMP.rownumindex<='||(pagesize*page); OPEN v_tabCursor FOR sqlstr1; end;
修正
CREATE OR REPLACE PACKAGE PACK_PRO_PATINFO AS TYPE PAYINFO_CURSOR IS REF CURSOR; end PACK_PRO_PATINFO; CREATE OR REPLACE PROCEDURE PRO_PAYINFO ( tb varchar2,--表名 col varchar2,---按该列进行分页排序 colnewlist varchar2,--子查询临时表列 collist varchar2,--要查询出的字段列表,*表示全部字段 condition varchar2,--查询条件 orderby integer,--排序 0=升序,1=降序 pagesize integer,--指定每页记录条数 page integer,--指定页 pages out integer,--总记录数 p_corsor out PACK_PRO_PATINFO.PAYINFO_CURSOR ) as sqlstr1 varchar2(4000);--分页查询的SQL sqlstr2 varchar2(1500);--求总页数据的SQL orderbystr varchar2(150);--排序串 pageTotal number;--总页数 tmpCount integer; begin --========求总页数================================ sqlstr2:='SELECT COUNT(*) FROM '||tb||condition; execute immediate sqlstr2 into tmpCount; --================================================ pages:=tmpCount; if(orderby=0) then orderbystr:=' ORDER BY '||col||' ASC'; else orderbystr:=' ORDER BY '||col||' DESC'; end if; --=======求页数=================================== --pageTotal:= pages/pagesize; --if(pagesize/2>mod(pages,pagesize)) then --pageTotal:=pageTotal+1; --end if; --halfpageTotal:=pageTotal/2; --================================================ sqlstr1:='SELECT '||colnewlist||' FROM (SELECT ROWNUM NO,'||collist||' FROM '||tb||' '||condition||' and ROWNUM<='||(pagesize*page)||orderbystr||') T where T.NO>'||(pagesize*(page-1))||' and T.NO<='||(pagesize*page); OPEN p_corsor FOR sqlstr1; end;
发表评论
-
Oracle 还原序列
2011-05-23 00:07 927declare n number(10); tsql ... -
instantclient_10_2客户端配置
2011-05-23 00:07 23051.下载Oracle Client Package . ... -
手工创建Oracle数据库
2011-05-23 00:01 783系统环境: 1、操作系统:Windows 2000 Serv ... -
oracle常用命令
2011-05-22 23:59 536如何单独备份一个或多个用户: D:\>exp sco ... -
有效创建Oracle dblink的两种方式
2011-05-22 23:59 776两台不同的数据库服务器,从一台数据库服务器的一个用户读取另一台 ... -
oracle 绑定变量(bind variable)
2011-05-22 23:58 1016绑定变量 在oracle 中,对于一个提交的sql ... -
oracle exp/imp命令详解
2011-05-22 23:56 734E:\>exp help=y 通过输入 EXP 命 ... -
Oracle备份与恢复
2011-05-22 23:54 664Oracle备份与恢复:逻辑备份 [导出(Export)导 ... -
触发器过程
2011-05-22 23:53 650触发器过程 PL/pgSQL 可以用于定义触发器过程。 一个 ... -
一些常用PLSQL语句 和事务
2011-05-22 23:52 1150基本的 PL/SQL语句AS 改变标题:列名 AS 列标题 ... -
学习ORACLE 视图
2011-05-22 23:50 641--视图--视图是一个逻辑表,是查看表的一种方式,用来定义来 ... -
学习ORCALE索引
2011-05-22 23:49 725--索引--索引是加快检索表中数据的方式。对于包含大量数据的表 ... -
学习ORCALE 表和约束
2011-05-22 23:48 596--表的建立create table TEST(ID nu ... -
学习ORCALE表空间、用户建立SQL
2011-05-22 23:47 882CREATE tablespace MYTEST DATAFI ... -
Oracle数据库的体系结构
2011-05-21 14:31 5681. 物理结构 物理数据库结构是由构成数据库的操作系统文 ... -
ORACLE数据库的模式对象的管理与维护
2011-05-21 14:22 771一、ORACLE数据库的模式对象的管理与维护 本节的主要 ...
相关推荐
oracle分页存储过程,oracle分页存储过程
### Oracle分页存储过程解析与应用 在数据库管理和应用程序开发中,处理大量数据时,分页查询是一项常用且重要的技术。Oracle数据库提供了多种方法来实现数据分页,其中使用存储过程进行分页是一种高效且灵活的方式...
"Oracle分页存储过程 终极版"旨在提供一个高效、灵活的解决方案,以应对各种分页查询的需求。这个存储过程优化了性能,并支持各种条件筛选和排序,使得在海量数据中进行分页操作变得更为便捷。 首先,理解分页的...
### Oracle 分页查询并返回总记录数据存储过程 在数据库应用开发中,为了提高用户体验以及减少服务器负担,分页查询成为了一种常见的技术手段。Oracle 数据库提供了多种方法来实现分页查询,其中使用存储过程是一种...
总结来说,Oracle分页存储过程是通过动态构造SQL语句,结合输入的分页参数,计算出总页数,并返回指定页的数据。这种方式在处理大量数据时提高了效率,同时也提供了灵活的查询控制。通过包装这些逻辑在存储过程中,...
在Oracle数据库中,分页查询是一项...总的来说,通过精心设计的存储过程,我们可以实现高效的多条件Oracle分页查询,同时确保查询性能不受数据量的影响。在实际应用中,应根据具体情况进行调整和优化,以达到最佳效果。
之前一直用SQL SERVER做项目,但是现在需要用到ORACLE,在网上找了几个都无法正常调用,因此自己写了一个,给大家一起分享,在写的过程中学习到了很多东西,同时也体会到了SQL SERVER和ORACLE中的异同点 在分页存储...
ibatis调用oracle存储过程分页
Oracle 提供了多种方法实现分页查询,下面我们将详细探讨Oracle存储过程中的分页实现。 1. **ROWNUM伪列** 在早期的Oracle版本中,ROWNUM伪列被广泛用于分页。ROWNUM是在结果集生成时自动分配的,表示每一行的顺序...
本文将详细探讨Oracle的分页查询语句及其存储过程。 首先,Oracle的分页查询语句通常遵循一个标准格式,如下所示: ```sql SELECT * FROM ( SELECT A.*, ROWNUM RN FROM ( SELECT * FROM TABLE_NAME ) A WHERE ...
本资源包含Oracle分页的`.cs`代码、存储过程以及Aspnetpager分页控件的使用示例,旨在帮助开发者理解和应用这些技术。 首先,我们来探讨Oracle中的分页查询。Oracle数据库支持多种分页方法,其中一种是通过ROWNUM伪...
在这个场景中,我们将深入探讨如何在Oracle中针对emp表实现分页查询的存储过程。 首先,让我们了解什么是分页查询。在大数据量的表格中,一次性加载所有数据可能会对系统性能造成压力,因此通常我们会采用分页的...
### Oracle存储过程分页知识点详解 #### 一、Oracle存储过程分页原理及实现方法 在Oracle数据库中,实现分页查询通常有两种方法:一种是使用`ROWNUM`伪列,另一种则是通过存储过程实现。其中,使用存储过程进行...
Oracle 分页存储过程 SQL Oracle 分页存储过程 SQL
根据所提供的信息,我们可以提炼出以下关于“ORACLE分页查询效率”的相关知识点: ### 一、Oracle中的分页查询 #### 1.1 分页查询的重要性 - **背景介绍**:在实际应用中,数据库查询结果往往非常庞大,一次性加载...
写好oracle的连接字符串和查询语句,调用程序中的方法可以很方便的实现分页功能。该方法中,将参数连接字符串,查询的sql语句,指定每页显示多少行,调用成功后,会返回页数,行数,还有查询的结果数据集。 使用...
在Oracle数据库中,分页查询是一项非常常见的操作,特别是在处理大量数据时,为了提高用户体验,我们需要将结果集分块加载,这就是所谓的分页...理解这些概念和技巧,对于开发过程中处理大规模数据的分页查询至关重要。
Oracle数据库在处理大数据量时,分页查询是必不可少的功能,它可以有效地提高数据检索效率,减少内存占用,并提供更好的用户体验。本文件包包含了一系列用于实现Oracle数据库分页查询的类,帮助开发者解决分页问题。...