知识大全 oracle 分页问题解决方案
Posted 知
篇首语:学问之根苦,学问之果甜。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 oracle 分页问题解决方案相关的知识,希望对你有一定的参考价值。
昨天做完项目后让测试测试了一把 测试说分页查询貌似不起作用 翻到第 页以后 看到的数据结果都是相同的 当时我就觉得很纳闷 不可能啊 分页组件应该是好的 咋可能有问题呢 带着疑问 我打开了自己的ide 在自己的机器上跑了一把 果然有问题 有问题就要找问题 首先把 条查询结果相同的sql打印出来到数据库中执行 sql
复制代码 代码如下:
select * from (select t * rownum rn from (select t_e_id t_e_name t_e_tel t_e_areacode from (select t eid t_e_id t ename t_e_name t etel t_e_tel t areaid t_e_areacode _delete_time decode(areaid ) orderseq from vr_enterprise t where t eid not in (select eid from t_biz_erelation)) order by orderseq biz_delete_time nulls last) t where rownum < ) where rn >= sql select * from (select t * rownum rn from (select t_e_id t_e_name t_e_tel t_e_areacode from (select t eid t_e_id t ename t_e_name t etel t_e_tel t areaid t_e_areacode _delete_time decode(areaid ) orderseq from vr_enterprise t where t eid not in (select eid from t_biz_erelation)) order by orderseq biz_delete_time nulls last) t where rownum < ) where rn >=
结果显示大多数行是相同的 为了找到问题所在 只有先一步一步的精简化sql 看在哪一步出的问题 于是找到了 问题出现在where rownum< 的时候数据改变了 为什么加了个where条件结果就会变呢? 表示想不通啊 没办法 只好baidu了 baidu了半天 都没人给个解释啊 后来同事说 换个写法试试 于是改了另一种写法 如下复制代码 代码如下:
select * from (select t * rownum rn from (select t_e_id t_e_name t_e_tel t_e_areacode from (select t eid t_e_id t ename t_e_name t etel t_e_tel t areaid t_e_areacode _delete_time decode(areaid ) orderseq from vr_enterprise t where t eid not in (select eid from t_biz_erelation)) order by orderseq biz_delete_time nulls last) t)m where m rn >= and m rn <
这个方法果然凑效 凑效是凑效 关键是为什么前面那种方法不行呢?抓问题要刨根问底 看来baidu不行 得换google搜索了 google搜索总是喜欢被china government墙掉 没办法 网上只好找了个chrome插件才解决了 找呀找找呀找 在oracle的ask tom上 tom详细的介绍了rownum的用法 在这里l One important thing about using this pagination query is that the ORDER BY statement should order by something unique If what you are ordering by is not unique you should add something to the end of the ORDER BY to make it so 看到这样一句话 原来用order by的时候还需要增加order by的唯一性 不然rownum就会有问题 哇哈哈哈 太开心了 功夫不费有心人呀 找到问题的症结了 当然就好解决了 这权当是一次排错的经历 特此记录下来 看来google还是比baidu强大很多啊 以后要好好学英文 不然遇到问题没发解决 cha138/Article/program/Oracle/201405/30859相关参考
Oracle常见SQL分页实现方案 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 在Oracle
Oracle分页查询中排序与效率问题 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 原始未分页查
oracle存储过程分页代码是怎么实现的我们来看下实验小编为您整理的方法吧! /*******存储过程分页代码**********/ 包头 createorreplacepackagepck
标准的rownum分页查询使用方法 select* from(selectc*rownumrnfromcontentc) &n
知识大全 oracle分页详解(rownum与orderby)
Oracle的分页是通过rownum实现的 rownum是一个伪列是oracle系统自动为查询返回结果的每行分配的编号第一行为第二行为以此类推 一个oracle分页至少要包含三层(除非不用or
特殊需求下Oracle分页的加速 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! Oracle分页
前台Ext后台ibatis 数据库分页 ORACLE: SELECT*FROM(SELECT A*ROWNUMRNFROM表名AWHERE 字段名LIKE(%||
createorreplacepackagemypack as typecursortestCursorisrefcursor; endmypack; tableName表名pageSiz
在看了众多的分页存储过程以后发现都是针对sqlserver的而没有oracle的因此想写一个关于oracle的存储过程因为我用到的数据库是oracleoracle分页存储过程的思路于sqlserv
今天做了个基于jsp+oracle分页的实现对于初学者来说这是好的(看了后绝对可以自己实现动手试试把)但是对于有基础的只是温故下sql语句(没涉及到很好的分层)好了我们开始把它实现把 &