我有一个从 ibatis xml 文件调用 oracle plsql 过程的 java web 应用程序。此过程捕获表的审计信息。因此,当多个用户修改此存储过程的表时。经过一段时间后,我收到以下错误。
--- 错误发生在 example.xml。
--- 应用参数映射时发生错误。
--- 检查 example.params。
检查语句(更新过程失败)。
原因:java.sql.SQLException:ORA-04068:包的现有状态已被丢弃
ORA-04065:未执行、更改或删除存储过程“PUBLIC.PLITBLM” ORA-06508:PL/SQL:找不到正在执行的程序单元称为:“PUBLIC.PLITBLM” ORA-06512:在“AUDIT”,第 279 行
ORA-06512:在第 1 行
来自ibatis的电话
{调用 AUDIT(?,?,?,?,?,?,'val')}
从 Java Web 应用程序调用
Map _temp = new HashMap(params);
_temp.put("OPERATION_TYPE",操作);
sqlMapper.insert("call_proc_audit",_temp);
返回假;
plsql 过程只对插入、更新和删除立即执行。
出于安全考虑,我已经删除了代码。