您好,欢迎访问一九零五行业门户网

Oracle Bug 6136074

在10.2.0.3上,存在bug可能导致编译过程或视图失败,而失败的结果并不只是当前视图或过程不可用,而是可能影响整个数据字典,导致
工作上碰到的oracle bug 6136074,一个10203上的bug,这种问题还是第一次碰到。 
在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以上。
其它类似信息

推荐信息