ibatis xml ファイルから oracle plsql プロシージャを呼び出す Java Web アプリケーションがあります。このプロシージャは、表の監査情報を取得します。そのため、複数のユーザーがテーブルを変更すると、このストアド プロシージャが一定時間後に次のエラーを受け取ります。
--- example.xml でエラーが発生しました。
--- パラメータ マップの適用中にエラーが発生しました。
--- example.params を確認してください。
ステートメントを確認してください (更新手順が失敗しました)。
原因: java.sql.SQLException: ORA-04068: パッケージの既存の状態が破棄されました
ORA-04065: ストアド・プロシージャ"PUBLIC.PLITBLM"が実行、変更または削除されていません呼び出し先: "PUBLIC.PLITBLM" ORA-06512: "AUDIT"、279 行
目 ORA-06512: 1 行目
アイバティスからの電話
{call AUDIT(?,?,?,?,?,?,'val')}
Java Web アプリからの呼び出し
Map _temp = new HashMap(params);
_temp.put("OPERATION_TYPE",操作);
sqlMapper.insert("call_proc_audit",_temp);
false を返します。
plsql プロシージャは、insert、update、および delete に対してのみ即時に実行されます。
セキュリティのため、コードを削除しました。