ASP.NET - ORA-04068: 包的现有状态已被丢弃
Posted
技术标签:
【中文标题】ASP.NET - ORA-04068: 包的现有状态已被丢弃【英文标题】:ASP.NET - ORA-04068: existing state of packages has been discarded 【发布时间】:2014-05-08 21:55:23 【问题描述】:这是 ASP.NET 应用程序,它使用具有全局 const 变量的 Oracle 包。编译此包后,第一个 ASP.NET 请求得到此异常:ORA-04068。我读到这是因为这个全局 const 变量。
请告诉我是否有办法在第一次请求时避免此异常(在 PROD 环境中)?
谢谢
【问题讨论】:
【参考方案1】:确保您编译规范,即使没有更改。
【讨论】:
【参考方案2】:如果您有一个 PL/SQL 包,它不仅包含可执行代码,还包含全局变量(常量或可修改),所有数据库会话/连接在编译之前使用该包并在编译之后访问它编译,会收到ORA-04068错误。
新会话不会发生这种情况。因此,避免它的一种方法是刷新所有数据库连接,例如通过回收 IIS 应用程序池。
【讨论】:
以上是关于ASP.NET - ORA-04068: 包的现有状态已被丢弃的主要内容,如果未能解决你的问题,请参考以下文章
如何在现有数据库中实现 ASP.NET Identity 2.0?