這個問題對應的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:
文章來源: