• 主页
  • Oracle 基础和管理
  • Oracle 高级技术
  • Oracle 认证与考试
  • 职位交流

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

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

请各位大虾给个解决办法吧,不胜感谢。
...全文
12089 点赞 收藏 6
写回复
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版本和这个过程做的操作说明一下吧
回复 点赞
发动态
发帖子
Oracle
创建于2007-09-28

6422

社区成员

5.4w+

社区内容

Oracle开发相关技术讨论
社区公告
暂无公告