奔跑的胖子

ORA-04068 产生的原因及处理方式

  如果我们使用Oracle的oerr程序看看ORA-04068的定义,我们会得到下面的信息:

  $oerr ora 04068
  04068, 00000, "existing state of packages has been discarded"
  // *Cause: One of errors 4060 - 4067 when attempt to execute a stored procedure.
  // *Action: Try again after proper re-initialization of any
  // application's state.

  这个错误显示执行包的现有状态被另一个会话的一个动作无效化了。这个“状态”涉及包在规范或体中定义的任何全局变量(包括常量)。引起这个错误的动作一般是(但不局限于此)在得到了发生错误的会话所使用的连接之后包的重新编译。Oracle 建议的动作是重新初始化应用程序状态以调整包的新状态后重新尝试。

 

出现原因:

  一般是系统运行过程中,对Package重新编译,会导致系统对于这个Session的Package失效。

解决办法:

  重启业务系统,重新获得Oracle Session。

避免方案:

  不要在系统运行过程中,对Package重新编译。

posted on 2010-07-13 23:07  奔跑的胖子  阅读(4634)  评论(0编辑  收藏  举报

导航