欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

oracle 分頁問題解決方案

 更新時間:2012年11月28日 14:10:38   作者:  
測試說分頁查詢貌似不起作用,翻到第4頁以后,看到的數(shù)據(jù)結(jié)果都是相同的,此等問題應(yīng)該如何解決,本文將詳細介紹

昨天做完項目后讓測試測試了一把,測試說分頁查詢貌似不起作用,翻到第4頁以后,看到的數(shù)據(jù)結(jié)果都是相同的。
當時我就覺得很納悶,不可能啊,分頁組件應(yīng)該是好的,咋可能有問題呢。帶著疑問,我打開了自己的ide,在自己的機器上跑了一把,果然有問題。
有問題就要找問題
首先把2條查詢結(jié)果相同的sql打印出來到數(shù)據(jù)庫中執(zhí)行:
sql1:

復制代碼 代碼如下:

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,
t.biz_delete_time,
decode(areaid, '0730', '0', '1') 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 < 25)
where rn >= 19
sql2:
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,
t.biz_delete_time,
decode(areaid, '0730', '0', '1') 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 <18)
where rn >= 12

結(jié)果顯示大多數(shù)行是相同的。
為了找到問題所在,只有先一步一步的精簡化sql,看在哪一步出的問題。
于是找到了,問題出現(xiàn)在where rownum<18的時候數(shù)據(jù)改變了,為什么加了個where條件結(jié)果就會變呢?
表示想不通啊。。。。。
沒辦法,只好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,
t.biz_delete_time,
decode(areaid, '0730', '0', '1') 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 >= 1 and m.rn <25

這個方法果然湊效,湊效是湊效,關(guān)鍵是為什么前面那種方法不行呢?抓問題要刨根問底。
看來baidu不行,得換google搜索了。google搜索總是喜歡被china government墻掉,沒辦法,網(wǎng)上只好找了個chrome插件才解決了。
找呀找找呀找,在oracle的ask tom上,tom詳細的介紹了rownum的用法,在這里http://www.oracle.com/technetwork/issue-archive/2006/06-sep/o56asktom-086197.html
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就會有問題。哇哈哈哈,太開心了,功夫不費有心人呀,找到問題的癥結(jié)了,當然就好解決了。
這權(quán)當是一次排錯的經(jīng)歷,特此記錄下來,看來google還是比baidu強大很多啊,以后要好好學英文,不然遇到問題沒發(fā)解決。

相關(guān)文章

  • 基于oracle小數(shù)點前零丟失的問題分析

    基于oracle小數(shù)點前零丟失的問題分析

    本篇文章是對oracle小數(shù)點前零丟失的問題進行了詳細的分析介紹,需要的朋友參考下
    2013-05-05
  • 一文解析ORACLE樹結(jié)構(gòu)查詢

    一文解析ORACLE樹結(jié)構(gòu)查詢

    這篇文章主要介紹了一文解析ORACLE樹結(jié)構(gòu)查詢,文章圍繞主題展開詳細的內(nèi)容戒殺,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-09-09
  • 在oracle 數(shù)據(jù)庫中查看一個sql語句的執(zhí)行時間和SP2-0027錯誤

    在oracle 數(shù)據(jù)庫中查看一個sql語句的執(zhí)行時間和SP2-0027錯誤

    oracle 數(shù)據(jù)庫中查看一個sql語句的執(zhí)行時間和SP2-0027錯誤的解決方法
    2009-10-10
  • 關(guān)于SQL執(zhí)行計劃錯誤導致臨時表空間不足的問題

    關(guān)于SQL執(zhí)行計劃錯誤導致臨時表空間不足的問題

    故障現(xiàn)象:臨時表空間不足的問題已經(jīng)報錯過3次,客戶也煩了,前兩次都是同事添加5G的數(shù)據(jù)文件,目前已經(jīng)達到40G,占用臨時表空間主要是distinct 和group by 以及Union all 表數(shù)據(jù)量在200W左右,也不至于把40G的臨時表空間撐爆。
    2013-04-04
  • Oracle實現(xiàn)分頁查詢的SQL語法匯總

    Oracle實現(xiàn)分頁查詢的SQL語法匯總

    這篇文章主要介紹了Oracle實現(xiàn)分頁查詢的SQL語法,非常實用的功能,需要的朋友可以參考下
    2014-08-08
  • 修改Oracle監(jiān)聽默認端口號1521的方法

    修改Oracle監(jiān)聽默認端口號1521的方法

    我們都知道,Oracle的監(jiān)聽默認端口是1521,但是如果系統(tǒng)上1521已經(jīng)被占用或業(yè)務(wù)要求不用默認端口,又或者是為了安全,這個時候我們就需要修改監(jiān)聽的默認端口。下面這篇文章主要介紹了修改Oracle監(jiān)聽默認端口號1521的方法,需要的朋友可以參考下。
    2017-01-01
  • Oracle11g調(diào)整SGA方法詳解

    Oracle11g調(diào)整SGA方法詳解

    這篇文章主要介紹了Oracle11gSGA調(diào)整方法,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-07-07
  • Oracle SCN與檢查點詳解

    Oracle SCN與檢查點詳解

    這篇文章主要介紹了Oracle SCN與檢查點的相關(guān)內(nèi)容,涉及SCN的定義,獲取方式,以及檢查點的相關(guān)介紹,需要的朋友可以了解下。
    2017-09-09
  • PL/SQL中編寫Oracle數(shù)據(jù)庫分頁的存儲過程

    PL/SQL中編寫Oracle數(shù)據(jù)庫分頁的存儲過程

    這篇文章主要介紹了 PL/SQL中編寫Oracle數(shù)據(jù)庫分頁的存儲過程,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2017-06-06
  • Oracle文本函數(shù)簡介

    Oracle文本函數(shù)簡介

    Oracle數(shù)據(jù)庫提供了很多函數(shù)供我們使用,下面為您介紹的Oracle函數(shù)是文本函數(shù),如果您對此方面感興趣的話,不妨一看。
    2015-08-08

最新評論