Oracle Bug 6136074 - ORA-04068 / ORA-04065 / ORA-06508解決

分類:編程 時間:2016-11-02
Oracle Bug 6136074 - ORA-04068 / ORA-04065 / ORA-06508解決   在10.2.0.3上,存在bug可能導致編譯過程或視圖失敗,而失敗的結果並不只是當前視圖或過程不可用,而是可能影響整個數據字典,導致存儲過程在執行時出現ORA-04068錯誤。 錯誤信息如下: ORA-04068: existing state of packages has been discarded. ORA-04065: not executed, altered or dropped stored procedure P_PACKAGE.P_PRO ORA-06508: PL/SQL: could not find program unit being called: P_PACKAGE.P_PRO ORA-06512: at line 1
  這個問題對應的BUG信息為:Bug 6136074 - ORA-04068 / ORA-04065 ORA-06508 on VALID objects [ID6136074.8],導致問題的原因就是編譯對象時導致PLSQL的依賴對象的時間戳發生不一致,從而導致問題的產生。 Oracle文檔上給出了檢查問題的SQL語句: select do.obj# d_obj,do.named_name, do.type# d_type, po.obj# p_obj,po.name p_name, to_char(p_timestamp,'DD-MON-YYYY HH24:MI:SS') "P_Timestamp", to_char(po.stime ,'DD-MON-YYYY HH24:MI:SS') "STIME", decode(sign(po.stime-p_timestamp),0,'SAME','*DIFFER*') X from sys.obj$ do, sys.dependency$ d, sys.obj$ po where P_OBJ#=po.obj#(+) and D_OBJ#=do.obj# and do.status=1 /*dependent is valid*/ and po.status=1 /*parent is valid*/ and po.stime!=p_timestamp /*parent timestamp not match*/ order by 2,1; 通過這個腳本將獲取的對象進行重新編譯,可以解決這個問題,要避免問題的再次出現,應該將數據庫版本升級到10.2.0.4以上。   ---------------------------------- present  by   dylan.  
Tags:

文章來源:


ads
ads

相關文章
ads

相關文章

ad