產生AWR報告時出現ORA-06502

來源:互聯網
上載者:User

產生AWR報告時出現ORA-06502

最近在產生一套系統的AWR報告時出現了如下報錯:ORA-06502: PL/SQL: numeric or value error: character string buffer too small,然後產生AWR報告的過程就終止了,查看產生的AWR報告,發現報告時不完整的,AWR報告到Complete List of SQL Text部分就結束了,且最後是以一個非常長的sql語句結束的,且這個sql語句還沒有顯示完整。查看MOS後發現,這是Bug 7833620導致的(參考MOS文章Doc ID 1303342.1),但就為了產生AWR報告去打patch,有點興師動眾了,於是決定想辦法繞過這個BUG。

根據上面的分析已經基本清楚,導致AWR報告產生失敗的原因就是系統中存在一個特別長的sql。明確了這點,接下來就好辦了,產生AWR報告的的sql文本是來自WRH$_SQLTEXT,那隻要將這個基表中的sql文本進行截斷,應該就能正確的產生AWR報告了。這裡說明下,WRH$_SQLTEXT基表儲存的是快照期間的sql文本資訊,對該表的操作不會影響系統的sql語句運行,但是對基表的操作始終是非常危險的,建議不要直接在產生系統上進行操作,可以將生產的AWR資料匯入到測試環境上產生AWR報告。AWR匯入/匯出具體操作,參看。

WRH$_SQLTEXT基表的結構如下:

SQL> desc WRH$_SQLTEXT

  •  Name                    Null?             Type
  •  ----------------------------------------- -------- ----------------------------
  •  SNAP_ID                                    

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.