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 887declare n number(10); tsql ... -
instantclient_10_2客户端配置
2011-05-23 00:07 22771.下载Oracle Client Package . ... -
手工创建Oracle数据库
2011-05-23 00:01 749系统环境: 1、操作系统:Windows 2000 Serv ... -
oracle常用命令
2011-05-22 23:59 501如何单独备份一个或多个用户: D:\>exp sco ... -
有效创建Oracle dblink的两种方式
2011-05-22 23:59 737两台不同的数据库服务器,从一台数据库服务器的一个用户读取另一台 ... -
oracle 绑定变量(bind variable)
2011-05-22 23:58 975绑定变量 在oracle 中,对于一个提交的sql ... -
oracle exp/imp命令详解
2011-05-22 23:56 702E:\>exp help=y 通过输入 EXP 命 ... -
Oracle备份与恢复
2011-05-22 23:54 637Oracle备份与恢复:逻辑备份 [导出(Export)导 ... -
触发器过程
2011-05-22 23:53 616触发器过程 PL/pgSQL 可以用于定义触发器过程。 一个 ... -
一些常用PLSQL语句 和事务
2011-05-22 23:52 1102基本的 PL/SQL语句AS 改变标题:列名 AS 列标题 ... -
学习ORACLE 视图
2011-05-22 23:50 614--视图--视图是一个逻辑表,是查看表的一种方式,用来定义来 ... -
学习ORCALE索引
2011-05-22 23:49 699--索引--索引是加快检索表中数据的方式。对于包含大量数据的表 ... -
学习ORCALE 表和约束
2011-05-22 23:48 560--表的建立create table TEST(ID nu ... -
学习ORCALE表空间、用户建立SQL
2011-05-22 23:47 843CREATE tablespace MYTEST DATAFI ... -
Oracle数据库的体系结构
2011-05-21 14:31 5261. 物理结构 物理数据库结构是由构成数据库的操作系统文 ... -
ORACLE数据库的模式对象的管理与维护
2011-05-21 14:22 742一、ORACLE数据库的模式对象的管理与维护 本节的主要 ...
相关推荐
oracle分页存储过程,oracle分页存储过程
Oracle 存储过程 Oracle分页 oracle分页
Oracle分页存储过程,里面包含C#调用代码实例;
oracle分页查询并返回总记录数据的存储过程
高效多条件 Oracle 分页存储过程 ,快速分页
Oracle的分页查询语句以及Oracle分页的存储过程
Oracle存储过程分页代码 Oracle存储过程分页代码 Oracle存储过程分页代码 Oracle存储过程分页代码 Oracle存储过程分页代码
教你如何在oracle 中创建分页的存储过程
之前一直用SQL SERVER做项目,但是现在需要用到ORACLE,在网上找了几个都无法正常调用,因此自己写了一个,给大家一起分享,在写的过程中学习到了很多东西,同时也体会到了SQL SERVER和ORACLE中的异同点 在分页存储...
终极版 分页存储过程 高效 条件 排序 Oracle
ibatis调用oracle存储过程分页
Oracle All 添加 修改 更新 Oracle分页 emp表 存储过程实现
Oracle 分页存储过程 SQL Oracle 分页存储过程 SQL
Oracle分页+.cs代码+存储过程+Aspnetpager分页控件 有详细的default.aspx页面调用实例代码
写好oracle的连接字符串和查询语句,调用程序中的方法可以很方便的实现分页功能。该方法中,将参数连接字符串,查询的sql语句,指定每页显示多少行,调用成功后,会返回页数,行数,还有查询的结果数据集。 使用...
java+Oracle分页,java操作oracle视图,存储过程。
oracle 分页 存储过程,超级牛的分页存储过程,执行后可以直接实用,分页速度刚刚的
java 调用Oracle存储过程进行分页详解