ORA-04068: existing state of packages has been discarded(パッケージの既存の状態が破棄された)
Oracle意味
実行中のセッションがパッケージの状態を使用している間にパッケージが再コンパイルされたため、その状態が無効になった。セッションが保持するパッケージインスタンスはもはや有効ではない。
原因
依存するセッションがアクティブな状態で、パッケージ本体または仕様が ALTER/CREATE OR REPLACE で再コンパイルされた。通常は稼働中のシステムへのアプリケーションのデプロイ時に発生する。ORA-04061/04065 とともに見られる。
対処方法
呼出しを再実行 (再試行) すれば通常は解消する。2 回目の試行でパッケージが新しい形でロードされる。アプリケーションで ORA-04068 を捕捉して自動で再試行する。パッケージの変更はユーザーの活動が少ないメンテナンス時間帯に適用する。ステートレスなパッケージ設計によりこの問題を減らせる。
同じデータベースの他の項目
- ORA-00979not a GROUP BY expression(GROUP BY の式ではない)
- ORA-00918column ambiguously defined(列の定義が曖昧)
- ORA-06550line/column PLS-... PL/SQL コンパイルエラー
- ORA-01427single-row subquery returns more than one row(単一行副クエリが複数行を返した)
- ORA-12899value too large for column(列に対して値が大きすぎる)
- ORA-30926unable to get a stable set of rows in the source tables(ソース表の安定した行セットを取得できない)
- ORA-08103object no longer exists(オブジェクトがもう存在しない)