在数据库中书写通用分页存储过程,有利于代码的维护以及执行效率的提升

create or replace procedure Sp_QueryDatePage
(tableName in varchar2,--表名fieldes  in  varchar2,---查询结果显示字段wherecase in  varchar2,---查询条件pageSize  in number, --页记录数pageNow in number,--当前页orderField  varchar2,-排序字段,为空表示不排序orderFlag  number,- 排序标识 0:正序 1: 倒序myrows out number ,--总记录数myPageCount out number ,---总分页p_cursor out  SP_QueryDatePackage.SP_QueryDate_cursor ----返回记录数
)    isv_sql varchar2(10000);--定义两个整数
v_begin number:=(pageNow -1)* pageSize+1; --开始记录
v_end   number:=pageNow* pageSize;       -- 结束记录--排序sql
v_orderSql varchar2(100):='';
v_wherecase varchar2(1000):='';begin-- 判定排序if orderFiled is not null  then if orderFlag =0 then v_orderSql:='ordey by'|| orderField'
         else if  orderFlag =1 then v_orderSql:='ordey by'|| orderField||desc;elsenull;end if;end if;--条件语句if  v_wherecase is not null thenv_wherecase :='where' || wherecase;end  if;v_sql:='select * from (select t1.*,rownum rn from (select '||fields||'from'||tablename|| v_wherecase||''|| v_orderSql ||') t1 where rownum<='||v_end||') where  rn >='|| v_begin
--把游标和sql关联
open p_curson  for v_spl;
--计算myrow 和MypageCountv_sql :='select count(*) from '||tableName||v_wherecase||''||v_orderSql;execute immediate  v_sql  into myrows;-- 计算myPageCount (页数)
if mod(myrows,Pagesize)=0 thenmyPageCount:=myrows/Pagesize;
else myPageCount:=myrows/Pagesize+1;end if;

转载于:https://www.cnblogs.com/mancomeon/p/5013496.html

Oracle 存储过程之通用分页查询相关推荐

  1. c oracle 分页工具类,Util工具类 跨Oracle、MySQL通用分页查询

    /**** 跨Oracle.MySQL通用分页查询*/public classPagingUtil { public static finalString MYSQL= "MYSQL&quo ...

  2. 客户端如何通过咏南中间件调用存储过程和数据分页查询和文件传输的演示

    客户端如何通过咏南中间件调用存储过程和数据分页查询和文件传输的演示 演示使用MSSQL 2000的存储过程,其它类型的数据库的存储过程的语法是有所不同的. 1)MSSQL2000通用数据分页存储过程, ...

  3. oracle分页查询加总数,oracle count 百万级 分页查询记要总数、总条数优化

    oracle count 百万级 分页查询记录总数.总条数优化 oracle count 百万级 查询记录总数.总条数优化 最近做一个项目时,做分页时,发现分页查询速度很慢,分页我做的是两次查询,一次 ...

  4. MySQL 和 Oracle 大数据量分页查询方法及其优化

    MySQL大数据量分页查询方法及其优化 ---方法1: 直接使用数据库提供的SQL语句 ---语句样式: MySQL中,可用如下方法: SELECT * FROM 表名称 LIMIT M,N ---适 ...

  5. Oracle常用语句:分页查询语句的写法

    Oracle分页查询语句使我们最常用的语句之一,下面就为您介绍的Oracle分页查询语句的用法,如果您对此方面感兴趣的话,不妨一看. Oracle分页查询语句基本上可以按照本文给出的格式来进行套用. ...

  6. oracle 大数据量分页查询

    (一)分页实现及性能 Oracle的分页查询语句基本上可以按照本文给出的格式来进行套用. 分页查询格式: SELECT * FROM ( SELECT A.*, ROWNUM RN FROM (SEL ...

  7. Oracle与MySQL的分页查询sql语句格式

    Oracle Oracle使用rownum进行分页,rownum是从1开始的: select * from (select rownum as rn, a.* from table_name a wh ...

  8. java通用分页条件查询_通用分页查询

    packagecom.dao;importjava.sql.ResultSet;importjava.sql.SQLException;importjava.util.ArrayList;import ...

  9. 通用分页查询存储过程

    分页数据查询通用存储过程,单表 SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -- ================================ ...

最新文章

  1. python matplotlib散点图-python matplotlib更新函数的散点图
  2. 【SQL】使用调用层接口
  3. afinal Android 快速开发框架
  4. 自律的程度,决定你人生的高度
  5. C# 6.0 (C# vNext) 的新功能:Expression Bodied Functions and Properties
  6. Python 黑帽子第二章运行截图
  7. CSS基础「四」浮动 \ 常见网页布局
  8. AOP的底层实现-CGLIB动态代理和JDK动态代理
  9. 开源加密库和 GnuPG 模块 Libgcrypt 紧急修复严重漏洞
  10. 【jenkins 异常】org.eclipse.jgit.errors.InvalidObjectIdException: Invalid id xxxxx
  11. 如何查看steam游戏销量_如何查看您在Steam游戏上花费的金钱和时间
  12. 浅谈Android自定义View
  13. 电磁仿真CST软件学习笔记:模型创建篇(更新中)
  14. 文件包含漏洞防范措施
  15. Ubuntu下邮件服务器的配置——SendMail
  16. dilated conv带孔卷积、pooling层提高感受野 反卷积 的理解
  17. 服务器发电子邮件,服务器拒绝接受发件人的电子邮件地址,这封邮件无法发送...
  18. 稀疏自动编码(Sparse Autoencoder)
  19. 如何做数据平滑迁移:双写方案
  20. 深入浅出聊优化:从Draw Calls到GC

热门文章

  1. LeetCode 268. Missing Number--Python解法--数学题
  2. Java通过Maven使用RoaringBitmap
  3. java mysql in_MySQL中Exists和In的使用
  4. C++__堆,栈与内存管理
  5. python定义浮点数数组_tensorflow之tf.record实现存浮点数数组
  6. 【Netty】ByteBuf--Netty的数据容器
  7. 五大点,搞懂单线程的Redis到底快在哪里
  8. Python之文件操作
  9. Note:理解CGI、FastCGI、PHP-CGI和PHP-FPM
  10. php编程神器,PHP代码神器 十个PHP代码片段超极好用