今天在执行EBS工作流的时候,遇到了一个及其古怪的问题,下面我把我遇到的问题及其解决问题的整个过程分享给大家。
首先我提交了工作流wf_a, 提交完成后在前台查看工作流,工作流状态为active(这点对于解决问题很重要),因为遇到问题不能继续向下进行。
第二步,修改后台对应的程序package: pkg_b.func_c.
第三步,重新提交工作流wf_a,这时遇到了如下错误:
ORA-04068: existing state of packages has been discarded
ORA-04061: existing state of package "pkg_b.func_c" has been invalidated
ORA-04065: not executed, altered or dropped package "pkg_b.func_c"
ORA-06508: PL/SQL: could not find program unit being called
这个错误太奇怪了,我的程序明明好好的,为什么会提示这种错误呢?我想那就baidu吧,那就google 吧, 那就metalink吧,总之是查了很久感觉总和我遇到的问题对不上号,就在快要放弃的时候,终于看见了一片文章《OraclePLSQL之子程序和包》里面有这么一段描述:
包运行状态的相关:
除了在存储对象之间的存在着相关外,包状态和匿名块之间也有相关特性。例如,请看下面的包:
节选自在线代码anonymousDependencies.sql