Oracle SQL Developer でビューまたはパッケージを参照すると、それらの横に赤いアイコンが表示され、コンパイル エラーが発生したことを示します。これは、エラーや警告なしでコンパイルされるオブジェクトにランダムに発生するようです。
赤いアイコンでも引き続き機能しますが、わかりにくく、何か足りないのではないかと思います。これらのオブジェクトに問題があるとマークされている理由を調べるにはどうすればよいですか?
Oracle SQL Developer でビューまたはパッケージを参照すると、それらの横に赤いアイコンが表示され、コンパイル エラーが発生したことを示します。これは、エラーや警告なしでコンパイルされるオブジェクトにランダムに発生するようです。
赤いアイコンでも引き続き機能しますが、わかりにくく、何か足りないのではないかと思います。これらのオブジェクトに問題があるとマークされている理由を調べるにはどうすればよいですか?
私も同じことを見てきました。ほとんどの場合、サブ プロシージャが変更されてコンパイルが必要になったときです。
オラクルは無効なパッケージをオンザフライで再コンパイルします。これが、無効なパッケージが適切に機能することが多い理由です。
他の人が指摘しているように、参照されたオブジェクトが変更されると、パッケージは無効になります。パッケージは正常にコンパイルされる場合とされない場合があります。これは、オブジェクトがどのように変更されるかによって異なります。
Oracle SQL Developer は、SW エンジニアリングの最高の部分ではありません。一般に、オラクルは彼らができること、つまりデータベースを行うべきだと思います;)これは、私がそのような不具合についてあまり心配しないことを示すためだけに言っています.
私自身はその問題を見たことがありませんが、このパッケージが使用しているデータベース オブジェクト (テーブルなど) が変更された場合に発生すると想像できます。パッケージがまだコンパイルされていても、オラクルは何らかの形でそれらをマークします。jdbc では、パッケージの最初の呼び出しで「パッケージの既存の状態が破棄されました」というメッセージが表示されます。推測にすぎませんが、それは単なるエラーかもしれません。一般的な Java 製品の品質を見て、私はそれほど不思議ではありません ;)