マテリアライズド ビューが更新されず、コンパイル エラーが発生するという問題が発生しました。上級開発者の 1 人は、マテリアライズド ビューをコンパイルするようにヒキガエルに指示することで、それを修正する方法を見つけたところだと言います。
だから私の質問は非常に簡単です: 更新と「コンパイル」の違いは何ですか?
マテリアライズド ビューが更新されず、コンパイル エラーが発生するという問題が発生しました。上級開発者の 1 人は、マテリアライズド ビューをコンパイルするようにヒキガエルに指示することで、それを修正する方法を見つけたところだと言います。
だから私の質問は非常に簡単です: 更新と「コンパイル」の違いは何ですか?
マテリアライズド ビューの更新はデータ操作です。MV のデータは、ビューの作成時に指定されたとおりに最新の状態に更新されます (高速更新、完全更新など)。
MV をコンパイルすると、Oracle はビューの基になっているクエリを再検証します。MV の基になっている 1 つ以上の基になるオブジェクトの変更により、MV が無効になる場合があります。
更新により、マテリアライズド ビューが保持するデータが更新されます。マテリアライズド ビューの定義が無効な場合、これは実行できません。
コンパイルは、具体化されたビューの定義を検証します。つまり、SQL が有効であり、それが依存するオブジェクトが存在することを検証します 。