加入收藏 | 设为首页 | 会员中心 | 我要投稿 财气旺网 - 财气网 (https://www.caiqiwang.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

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

发布时间:2021-03-06 15:48:12 所属栏目:MsSql教程 来源:网络整理
导读:我们每天在每两个小时运行一次的脚本上收到此错误,但是在一天的不同时间. ERROR at line 1:ORA-04068: existing state of packages has been discardedORA-04061: existing state of package body "PACKAGE.NAME" has beeninvalidatedORA-06508: PL/SQL: coul

我们每天在每两个小时运行一次的脚本上收到此错误,但是在一天的不同时间.

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.这会清除会话的所有包状态.

(编辑:财气旺网 - 财气网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读