所以我一直在运行一个PLsql程序,没有错误编译.我对我的程序做了一个修改,它仍然编译得很好,但是现在当我运行它,我得到这个错误:
ERROR at line 1: ORA-04068: existing state of packages has been discarded ORA-04061: existing state of package body "SCHEMA.XP_COVER_PAGEP" has been invalidated ORA-04065: not executed,altered or dropped package body "SCHEMA.XP_COVER_PAGEP" ORA-06508: PL/sql: could not find program unit being called: "SCHEMA.XP_COVER_PAGEP" ORA-06512: at "SCHEMA.XP_ST_002180",line 141 ORA-06512: at line 1
任何想法可能是什么?我所做的改变是微不足道的,我怀疑这可能会导致这个错误.预先感谢您的帮助!
解决方法
当会话使用会话保留该包的某些状态的包时.如果重新编译该包,下一次同一个会话引用该包将会得到该错误.
为了避免这种情况,请确保断开每个可能已使用该软件包的会话,或者让会话执行DBMS_SESSION.RESET_PACKAGE来重置软件包状态.