ORA-06508调用远程数据库上的过程时

时间:2018-11-26 14:13:59

标签: oracle plsql

在我们的应用程序(ADF)中,应用程序团队正在使用dblink调用过程。在此过程中,将调用另一个位于pacakge中的过程。它工作正常,但有时会出现错误

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

当我签入远程数据库时,我发现该对象的状态为有效

当我重新启动应用程序服务器时,它又可以工作了。每次需要重新启动应用程序服务器(Weblogic)时。

我找不到导致此问题的主要原因。为什么几天后又一次发生这种情况。请帮忙。

谢谢!

1 个答案:

答案 0 :(得分:0)

我认为当有人编译堆栈中的一个包时,您的麻烦就变得了。您可以尝试在select中进行层次结构dba_dependencies查询以进行检查。

关于服务器的重新启动,我认为这是由于db-link外部的代码在调用时会回滚。直到他们不重置状态包,错误都会在第一次错误后每次重复。有两种解决方法(我认为):
1.使用代码ORA-06508
捕获异常 2.特殊的pragma 的包装函数/过程,可以忽略对包装状态的检查。