ORA-06508: PL/SQL: 无法找到正在调用 的程序单元

littlechang 2009-07-28 10:23:53
本人使用oracle时间不长,现在遇到了问题,向各位大虾请教。具体问题如下:
程序调用过程时出现如下的错误(过程自动记录下的错误):
ORA-06508: PL/SQL: 无法找到正在调用 的程序单元。
oracle过程编译没有问题。
相同的数据,相同的过程放到另外的一台机器上,则运行正常,没有出现上面提示的错误,之前也出现过相应的错误,但一般重新编译过程后就解决,但这一次无论如何重新编译,都没有出现错误,但就是运行时会出错这个异常。并且在sql plus中手动调用过程时又是正常的。

请各位大虾给个解决办法吧,不胜感谢。
...全文
14735 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
inthirties 2009-07-29
  • 打赏
  • 举报
回复
用sysdba登录,执行这个sql,把其中upper(name)=upper('DBMS_OUTPUT') DBMS_OUTPUT换成你的procedure的名字。

select * from (select dba_dependencies.*, level level_1 from dba_dependencies where name<>referenced_name and referenced_type<>'TABLE' start with upper(name)=upper('DBMS_OUTPUT') connect by prior referenced_name = name) where level_1 > 1;

通过这个sql可以看到你提供的procedure都依赖叻哪些对象,查看这些对象的status。

suncrafted 2009-07-29
  • 打赏
  • 举报
回复
select OBJECT_NAME, OBJECT_TYPE, CREATED, LAST_DDL_TIME, STATUS 
from all_objects
where status != 'VALID'


看看你调用的过程是否是invalid的
littlechang 2009-07-29
  • 打赏
  • 举报
回复
oracle 10g,有时会出现,重新编译一下就好了,但这一次我编译了多次没有任何错误,并且运行了多次还是相同的错误,而相同的过程,在另外的一台机器上则运行正常。
csuxp2008 2009-07-28
  • 打赏
  • 举报
回复
你按照1楼给出的可能原因一一比对一些,要是都没问题的话,真可能是BUG
shiyiwan 2009-07-28
  • 打赏
  • 举报
回复
ORA-06508: PL/SQL: could not find program unit being called
Cause: An attempt was made to call a stored program that could not be found. The program may have been dropped or incompatibly modified, or have compiled with errors.
Action: Check that all referenced programs, including their package bodies, exist and are compatible.

网上查了下好像是oracle的bug,不过不确定,你的oracle版本和这个过程做的操作说明一下吧

17,086

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧