• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

Oracle Bug 6136074

mysql 搞代码 4年前 (2022-01-09) 19次浏览 已收录 0个评论

在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.本文来源gao@daima#com搞(%代@#码@网20.4以上。


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:Oracle Bug 6136074

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址