日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
教您如何解決oracle分頁查詢數(shù)據(jù)重復問題

oracle分頁查詢時,會遇到數(shù)據(jù)重復的問題,下面就教您一個解決oracle分頁查詢數(shù)據(jù)重復問題的方法,希望對您能夠有所幫助。

在oracle分頁查詢中,我們采用類似以下所示的公認的比較高效的數(shù)據(jù)庫分頁查詢語句(Effective Oracle by Design中有描述、眾多oracle使用者也做過測試)。

寫道

 
 
 
  1. SELECT * FROM
  2. (
  3. SELECT A.*, ROWNUM RN
  4. FROM (SELECT * FROM TABLE_NAME) A
  5. WHERE ROWNUM <= n)
  6. WHERE RN > m

這里的ROWNUM是一個偽列,它是oracle為查詢結(jié)果所編的一個號,***行的 ROWNUM為1,第二行為2,以此類推。

因為oracle是按塊進行讀取數(shù)據(jù)的,如果數(shù)據(jù)按順序存儲,則可能使讀取出來的數(shù)據(jù)是按順序的,給用戶誤解為默認排序。事實上,oracle沒有進行任何排序操作,如果sql沒有要求排序,oracle會順序的從數(shù)據(jù)塊中讀取符合條件的數(shù)據(jù)返回到客戶端。所以在沒有使用排序sql的時候,分頁返回的數(shù)據(jù)可能是按順序的,也可能是雜亂無章的,這都取決與數(shù)據(jù)的存儲位置。在oracle分頁查詢過程中,如果數(shù)據(jù)的物理位置發(fā)生了改變,就可能會引起分頁數(shù)據(jù)重復的現(xiàn)象。

所以,要正確使用oracle分頁查詢,sql語句中必須有排序條件。

但是,在有排序條件的時候,仍然會出現(xiàn)數(shù)據(jù)重復的現(xiàn)象,這是為什么呢?

通過了解oracle的排序機理就會明白,出現(xiàn)這種情況的原因是因為排序列值的不***性。 Oracle這里使用的排序算法不具有穩(wěn)定性,也就是說,對于鍵值相等的數(shù)據(jù),這種算法完成排序后,不保證這些鍵值相等的數(shù)據(jù)保持排序前的順序。

解決的方法是在后邊增加一個***性列,比如主鍵。

所以解決方法如下(兩個條件必須同時滿足):

1.sql語句中需要有排序條件。

2.排序條件如果沒有***性,那么必須在后邊跟上一個***性的條件,比如主鍵。


分享名稱:教您如何解決oracle分頁查詢數(shù)據(jù)重復問題
URL地址:http://www.dlmjj.cn/article/cceppds.html