前几天在生产环境编译了一个ORACLE 包,导致了OA接口中抛出ORA-06508的异常。 经检查,是由于OA接口中调用的PACKAGE的依赖包中定义了全局变量,若在package中定义了全局变量,该包被编译过但是应用没有重启或者没有刷新连接池,则会导致 "错误ORA-06508: PL/SQL: 无法找到正在调用 的程序单元"。 1.若PACKAGE中定义了...
oracle中ora-06508错误 在实际⼯作中,发现我们做的程序出现ora-06508的错误,这个错误在同⼀台机器上怎么做都是出项这样的问题,⽤另⼀台机器,就不会出现这样的问题.经过总结:1:后台调⽤的这个包出现问题,失效。select object_name,object_type,created,last_ddl_time,ststus From all_objects where ...
也就是说,t和bak_t是两个对象,虽然我们经常给它们互换名字,但其内部id却一直未变,编译时引用的对象和要执行的引用的对象不一致,存过就会报Ora-06508错误。 要解决这个问题就很简单了:将过程B里引用t表的那段代码使用EXECUTE IMMEDIATE ''改成动态sql,等执行到这里时再编译这段代码。
ORA-06508: PL/SQL: could not find program unit being called: "TEST.SIMPLEPKG" ORA-06512: at line 2 原因: 出现这种情况的原因是因为,对于全局变量,每一个session会生成一个本地copy,如果程序重新编译的话,就会因程序里原变量找不到而丢弃该变量,继而导致这个错误。
一个存储过程平时执行正常,刚才执行出ORA-06508错误。百思不得其解,好像没有什么不正常的地方啊! 后来找到了答案。 重现这个错误如下:执行一个存储过程,其运行时间比较长。刚开始运行时,所有的被依赖对象当然都是VALID的,不然会无法运行。在其运行过程中,被依赖的某对象变为INVALID的了,当程序运行到与INVALID状态对...
ORA-06508: PL/SQL: could not find program unit being called errorutlrp.sql crashesinvalid DBMS_SQLPA package body "alter package DBMS_SQLPA compile body" failed with error ORA-904: "OTHER_XML": invalid identifierObjects are invalid: DBMS_SQLPA PACKAGE BODYAQ$AQ_SRVNTFN_TABLE AQ$SCHEDULER$...
ORA-06508: PL/SQL: could not find program unit being called: "DBSNMP.BSLN_INTERNAL" ORA-06512: at line 1 MOS中的解释为,为了安全起见,之前授权给public的execute on dbms_job权限被收回,导致dbsnmp执行dbms_job权限不够报错。解决措施 grant execute on sys.dbms_job to dbsnmp; ...
关于ORA-06508,ORA-04068异常的详细说明 参考:出现这种情况的原因是因为,对于全局变量,每⼀个session会⽣成⼀个本地copy,如果程序重新编译的话,就会因程序⾥原变量找不到⽽丢弃该变量,继⽽导致这个错误。也就是说在⼀个会话中调⽤程序包package时,会⽣成package中全局变量的副本,如果在另⼀...
Oracle报错:ORA-06508: PL/SQL: 无法找到正在调用的程序单元 原因:调用的存储过程已经被修改过. 解决方案:重新编译存储过程.