ITPub博客

首页 > Linux操作系统 > Linux操作系统 > ORA-04068,ORA-04065,ORA-06508 PL/SQL: could not find program unit being called

ORA-04068,ORA-04065,ORA-06508 PL/SQL: could not find program unit being called

原创 Linux操作系统 作者:tolywang 时间:2009-07-27 10:29:17 0 删除 编辑

译者注:Tom Kyte (Thomas Kyte)从1988年就开始使用Oracle, 在1993年加入Oracle公司,他的主要时间花费在asktom.oracle.com上。这使得asktom.oracle.com成为最受关注的Oracle问题问答网站。他帮助全球Oracle用户解答了不计其数的问题。

以下这篇博文发表在他的个人博客上:http://tkyte.blogspot.com/2008/06/when-others-then-null-redux.html 本博客已经获得Thomas Kate翻译并转载他的这篇博文的授权。本文的版权仍然属于Thomas Kate。

没有处理的when others又回来了

有些事一直在发生。

重复而又重复地,这些事一直在发生。

这是第124,215,412,523case,请你们看一下。

一位用户对我说:

我遇到这样的情况,从三月份的第二周开始,我在过去的五、六周里突然开始从一个存储过程SP_A接收到SQLException ‘Cursor is Closed’。这个情况是间歇性发生的。如果我在出现错误几分钟以后,用同样的参数再次执行这个存储过程,它又会返回正确的结果,而不产生错误。…”

当我问他“你看到的是什么ora-xxxx错误?”以后,他回答的更多细节如下:

“很不幸,这种情况并不产生ORA-????错误。我知道在很多情况下,‘Cursor is Closed’错误是个编程错误,但是在这里,情况不是这样。 我不能如我希望的那样重现这个错误。我在我们的开发环境或客户验收环境里都无法重现这个错误。即使在生产环境,我也不能用产生错误的参数重现这个错误。

“我怀疑原因可能是Oracle的内存问题,因为我们刚从9i升级到10g RAC。应用程序—Java代码和存储过程—到现在已经运行了56年了。甚至我们接收到的‘Cursor is Closed’错误也不是确定的,例如产生错误的参数在完全一样的代码下,在几分钟以后就正常工作了。”

好,现在变成这样了他们说“没有ora-xxxx错误,Oracle就是把我们的游标关掉了—没有原因地。我们知道这不会是我们代码的bug,这是Oraclebug.”

故事总是这样上演的。 就在我最后准备放弃把这个问题关闭的时候,他们又继续了:

“我们发现SP_A有个WHEN OTHERS的例外处理子句,把真正的错误屏蔽了。

我们把这个错误去掉以后,以下是我们看到的错误: 

ORA-04068: existing state of packages has been discarded
ORA-04065: not executed, altered or dropped stored procedure "SP_
A

"ORA-06508: PL/SQL: could not find program unit being called:
ORA-06512: at "SP_B", line 317
ORA-06512: at line 1

这就是过去这段时间里间歇发生的事(之前我们并不知道因为存储过程编写的方式和Java代码与返回参数之间的交互方式,这些错误被表现为Cursor Closed错误。)”

现在他们要深入调查为什么会发生这种问题了

记住,每个人,每个人记住,印在脑子里: 

WHEN OTHERS后面如果没有跟RAISERAISE APPLICATION ERROR,几乎可以肯定(有99.999999999%的准确率),是你开发的代码的一个bug.一定要对when others后面没有跟raiseraise application error这种做法说“不”。

http://www.oracle.com/technology/oramag/oracle/07-jul/o47asktom.html

 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/35489/viewspace-610497/,如需转载,请注明出处,否则将追究法律责任。

上一篇: [草稿]data guard
请登录后发表评论 登录
全部评论
Oracle , MySQL, SAP IQ, SAP HANA, PostgreSQL, Tableau 技术讨论,希望在这里一起分享知识,讨论技术,畅谈人生 。

注册时间:2007-12-10

  • 博文量
    5595
  • 访问量
    13201616