2012-04-24 110 views
0

我有一個非常簡單的查詢,隨機返回重複的行。有時我沒有重複,其他時候我有重複的結果集,重複的記錄每次都不一樣。我在凍結的數據庫上運行查詢(數據不會更改)。我的Oracle版本是11g。查詢結果集隨機複製

我在日期只有一個篩選器(在WHERE子句中):
to_char(date,'yyyy/mm') > = '2012/03'

任何幫助,將不勝感激。 感謝您的關注。 此致敬禮。

完整的查詢

select distinct 
    B.ORD_V_COD_ROWID as c1, 
    B.ORD_D_DAT_INSERITO_RIFIUTATO as c2, 
    B.ORD_D_DAT_RIFIUTO_SIS as c3 
    from 
     NRFTF_ORD_ORDINE A, 
     NRFTF_COR_ORDINI_RDS B 
    where (A.ORD_N_DWH_NUM_ORDINE = B.ORD_N_DWH_NUM_ORDINE 
    and B.ORD_V_COD_CAUSALE = 'CLIENTE NON AFFIDABILE' 
    and B.ORD_V_COD_STATO = 'RIFIUTATO' 
    and B.RDS_C_DWH_FLG_CANCELLAZIONE = '0' 
    and B.ORD_C_DWH_FLG_CANCELLAZIONE = '0' 
    and B.ORD_V_COD_CAUSALE = 'CLIENTE NON AFFIDABILE' 
    and B.PER_NAME_MONTH >= '2012/03' 
    and (B.ORD_D_DAT_RIFIUTO_SIS >= TO_DATE('2012-03-22 00:00:00' , 'YYYY-MM-DD HH24:MI:SS') 
    or B.ORD_D_DAT_INSERITO_RIFIUTATO >= TO_DATE('2012-03-22 00:00:00' , 'YYYY-MM-DD HH24:MI:SS')) 
    and TO_CHAR (A.ord_d_dat_creazione,'YYYY/MM') >= '2012/03') 
    order by c1, c2, c3 
+0

什麼查詢?顯示所有查詢文本,而不是部分 – 2012-04-24 10:15:35

+0

編輯您的問題以顯示查詢(請勿將它置於註釋中...) – 2012-04-24 10:42:44

+0

B.PER_NAME_MONTH是一個varchar2,對不對? – 2012-04-24 11:19:06

回答

0

有趣。我已經看到有些類似的行爲與破損的指數。重建索引已經解決了問題,但隨後又出現了非確定性行爲。我們最終稱Oracle支持。他們將它固定在一個非常令人印象深刻的24小時全球更新的數據字典會話中。

我想嘗試從頭開始重建涉及的所有表和索引。

如果這不起作用,並且您三重檢查了您沒有任何動態的信息,請聯繫Oracle支持。

+0

謝謝Jens,我將重建涉及的索引,希望它能起作用。 – Natascia 2012-04-24 12:58:54