2017-06-28 37 views
0

我已創建此查詢以檢索特定結果。 但它給了我這個錯誤。 我自1995年以來有記錄。所以,如果我想檢索所有的數據。我收到以下錯誤。ORA-00600:內部錯誤代碼,參數:[5213],[] [] [] [],oracle 8

ERROR at line 38: 
ORA-00600: internal error code, arguments:[5213],[][][][] 

SELECT TO_NUMBER(SOLF.I_NO) I_NO, 
GEHA.G_NAME, 
ITEMS.I_NAME, 
TO_NUMBER(SOLF.G_NO) G_NO, 
NVL(SOLF.SL_MONY,0) SL_MONY, 
SOLF.SL_DATE THE_DATE, 
SOLF.SRF_NO SRF_NO, 
SOLF.SOLF_NO SOLF_NO, 
SUM(NVL(TS_MONY,0)) TS_MONY, 
NVL(SOLF.SL_MONY,0)- SUM(NVL(TS_MONY,0)) TOTAL, 1 THE_ORDER 
FROM 
SOLF,TSDED,GEHA,ITEMS 
WHERE 
SOLF.SOLF_NO = TSDED.SOLF_NO(+) 
AND GEHA.G_NO = SOLF.G_NO 
AND 
ITEMS.I_NO = SOLF.I_NO 
GROUP BY SOLF.I_NO, 
GEHA.G_NAME, 
ITEMS.I_NAME , 
SOLF.G_NO, 
SOLF.SL_MONY, 
SOLF.SL_DATE, 
SOLF.SRF_NO, 
SOLF.SOLF_NO 
UNION ALL 
SELECT TO_NUMBER(TSDED.I_NO) I_NO, 
GEHA.G_NAME, 
ITEMS.I_NAME, 
TO_NUMBER(TSDED.G_NO) G_NO, 
0 SL_MONY, 
TSDED.TS_DATE THE_DATE , 
TSDED.SRF_NO SRF_NO, 
TSDED.SOLF_NO SOLF_NO, 
SUM(NVL(TS_MONY,0)) TS_MONY, 
0 -SUM(NVL(TS_MONY,0)) TOTAL, 2 THE_ORDER 
FROM 
TSDED,GEHA,ITEMS 
WHERE 
GEHA.G_NO = TSDED.G_NO 
AND 
TSDED.SOLF_NO NOT IN 
(
SELECT SOLF_NO 
FROM 
SOLF 
) 
AND 
ITEMS.I_NO = TSDED.I_NO 
GROUP BY TSDED.I_NO, 
GEHA.G_NAME, 
ITEMS.I_NAME , 
TSDED.G_NO, 
TSDED.TS_DATE, 
TSDED.SRF_NO, 
TSDED.SOLF_NO 
ORDER BY G_NO, I_NO , THE_ORDER ,THE_DATE ; 

我試圖修復它,但沒有結果。反正,錯誤行是38,即:TSDED,GEHA,ITEM。 我的oracle數據庫是8i

+0

該表是命名項目。錯誤顯示項目......這是什麼? http://www.dba-village.com/village/dvp_forum.OpenThread?ThreadIdA=4864表示要補丁到8.1.7或增加排序區域大小。 – xQbert

回答

1

你運行的是哪個版本的Oracle?如果你是使用 低於8.1.6.3版本你可能 打蟲1331849,

說明:用UNION ALL和超過 一個磁盤排序操作的查詢可能會失敗,出現錯誤ORA-600 [5213] ]

http://www.orafaq.com/forum/t/9968/

一般而言ORA-00600是一個內部錯誤,通常這是關係到越來越損壞一些內部結構或數據庫中的一個錯誤。

要解決這個問題,我認爲最簡單的方法可能是使用一個表格(臨時或不是);分別插入你需要的行,避免union all和查詢表。

+0

oracle 8.1.6.0.0。我已閱讀該帖子。沒有找到任何補丁文件 – ama989

+1

我想補丁是由oracle支持分發的... –

+0

是的補丁是由Oracle支持分發的。然而,8.1.6已經退出支持這麼長時間(接近二十年),這是甲骨文僅向高度青睞的客戶(即支付超高端支持的公司)提供的東西。這是運行古代軟件而不支付支持許可證的風險。 – APC

0

如果我們假設聯合中的每個查詢都工作不出錯;然後 也許強制引擎實現結果,然後使用內聯視圖/子查詢進行排序。

SELECT * 
FROM (SELECT TO_NUMBER(SOLF.I_NO) I_NO 
      , GEHA.G_NAME 
      , ITEMS.I_NAME 
      , TO_NUMBER(SOLF.G_NO) G_NO 
      , NVL(SOLF.SL_MONY,0) SL_MONY 
      , SOLF.SL_DATE THE_DATE 
      , SOLF.SRF_NO SRF_NO 
      , SOLF.SOLF_NO SOLF_NO 
      , SUM(NVL(TS_MONY,0)) TS_MONY 
      , NVL(SOLF.SL_MONY,0)- SUM(NVL(TS_MONY,0)) TOTAL 
      , 1 THE_ORDER 
FROM SOLF,TSDED,GEHA,ITEMS 
WHERE SOLF.SOLF_NO = TSDED.SOLF_NO(+) 
    AND GEHA.G_NO = SOLF.G_NO 
    AND ITEMS.I_NO = SOLF.I_NO 
GROUP BY 
    SOLF.I_NO, 
    GEHA.G_NAME, 
    ITEMS.I_NAME, 
    SOLF.G_NO, 
    SOLF.SL_MONY, 
    SOLF.SL_DATE, 
    SOLF.SRF_NO, 
    SOLF.SOLF_NO 
UNION ALL 
SELECT TO_NUMBER(TSDED.I_NO) I_NO 
    , GEHA.G_NAME 
    , ITEMS.I_NAME 
    , TO_NUMBER(TSDED.G_NO) G_NO 
    , 0 SL_MONY 
    , TSDED.TS_DATE THE_DATE 
    , TSDED.SRF_NO SRF_NO 
    , TSDED.SOLF_NO SOLF_NO 
    , SUM(NVL(TS_MONY,0)) TS_MONY 
    , 0 -SUM(NVL(TS_MONY,0)) TOTAL 
    , 2 THE_ORDER 
FROM TSDED,GEHA,ITEMS 
WHERE GEHA.G_NO = TSDED.G_NO 
    AND TSDED.SOLF_NO NOT IN (SELECT SOLF_NO FROM SOLF) 
    AND ITEMS.I_NO = TSDED.I_NO 
GROUP BY 
    TSDED.I_NO, 
    GEHA.G_NAME, 
    ITEMS.I_NAME , 
    TSDED.G_NO, 
    TSDED.TS_DATE, 
    TSDED.SRF_NO, 
    TSDED.SOLF_NO) mSub 
ORDER BY 
    G_NO, 
    I_NO, 
    THE_ORDER, 
    THE_DATE; 
+0

試過了。相同的錯誤 – ama989

+0

每個查詢是否獨立運行?它是否按順序運行?你可以將結果存儲在臨時表中,然後從中選擇它,這樣它就不會跨磁盤(我正在尋找解決方法......真正的答案是使用受支持的版本) – xQbert

相關問題