Oracle ORA-04068中的常见错误:软件包的现有状态已被丢弃 [英] Frequent error in Oracle ORA-04068: existing state of packages has been discarded

查看:89
本文介绍了Oracle ORA-04068中的常见错误:软件包的现有状态已被丢弃的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

We're getting this error once a day on a script that runs every two hours, but at different times of the day.

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

有人可以列出什么条件会导致此错误,以便我们进行调查?

Could someone list what conditions can cause this error so that we could investigate?

谢谢.

更新: 执行'ALTER SESSION CLOSE DATABASE LINK DBLINK'是否会使程序包的状态无效?

UPDATE: Would executing 'ALTER SESSION CLOSE DATABASE LINK DBLINK' invalidate a state of the package?

推荐答案

此衬套实际上解决了所有问题:

This one liner actually solved everything:

PRAGMA SERIALLY_REUSABLE;

请确保您的全局变量是无状态的,以避免出现任何问题.

Be sure that your global variables are stateless to avoid any issues.

这篇关于Oracle ORA-04068中的常见错误:软件包的现有状态已被丢弃的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆