【发布时间】:2017-09-22 21:21:02
【问题描述】:
我们每天在每两小时运行一次的脚本上遇到此错误,但在一天中的不同时间。
ERROR at line 1:
ORA-04068: existing state of packages has been discarded
ORA-04061: existing state of package body "PACKAGE.NAME" has been
invalidated
ORA-06508: PL/SQL: could not find program unit being called:
"PACKAGE.NAME"
ORA-06512: at line 1
谁能列出哪些情况会导致此错误,以便我们进行调查?
谢谢。
更新:
执行'ALTER SESSION CLOSE DATABASE LINK DBLINK' 会使包的状态无效吗?
【问题讨论】:
-
作为进一步的信息,编译包主体不会使调用包“变为无效” - 即数据字典仍将显示所有包和触发器以及任何“有效”。失效的是每个用户的 PGA。因此,如果有 10 个用户在重新编译包时使用该包,那么每个用户在下次引用该包时都会依次遇到这个问题。