sql – Oracle ORA-04068中的频繁错误:已丢弃现有的包状态

前端之家收集整理的这篇文章主要介绍了sql – Oracle ORA-04068中的频繁错误:已丢弃现有的包状态前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我们每天在每两个小时运行一次的脚本上收到此错误,但是在一天的不同时间.
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’是否会使包的状态无效?

解决方法

该包具有公共或私有变量. (对吧?)这个变量构成了包的状态.如果您在第3个会话中编译包.下一次访问此程序包将抛出ORA-04068.

程序包的构建时间戳必须早于程序包会话状态.

如果脚本运行不需要包状态,则在脚本开头调用DBMS_SESSION.RESET_PACKAGE.这会清除会话的所有包状态.

原文链接:https://www.f2er.com/mssql/84076.html

猜你在找的MsSQL相关文章