玖叶教程网

前端编程开发入门

Oracle数据重复和分页异常问题(oracle分页排序查询重复)

一、问题描述

在每页20条记录是数据出现重复,每页10条时分页数据混乱,每页30,50,100,1000时分页正常

在单独一个数据库表中偶现


二、排查步骤

1.以为是数据库数据异常,直接把程序中SQL复制出来全量查询时,数据总量正常

2.以为是分页控件异常,到其他功能上查询,无异常

3.把分页大小调大到每页30条,50条,100条,1000条,数据正常

4.发现SQL中每次都追加一个排序字段


三、问题原因

oracle分页使用rownum,它跟rowid不同,他的值不是绝对的,每次查询时生成,只能用于小于或小于等于,如果排序order by的字段不是唯一的,有重复值,此时就根据数据的条数不同,分页的大小不同,就有可能发生分页混乱的情况。


这个情况只在特殊数据量和分页情况下偶现


四、建议

1.分页排序时使用唯一值

2.如果必须用有重复的值,那多增加几个排序字段,联合排序,让排序后的记录是有明确顺序的

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言