4

私の知る限り、仕様に影響を与えることなく、パッケージ本体を置き換えて再コンパイルできます。パッケージ仕様はプロシージャと関数を定義するのではなく宣言するため、それらはオブジェクトを参照できず、パッケージ仕様が無効になる可能性があります。

スタンドアロンのサブプログラムや他のパッケージを使用してその変数を定義する場合、パッケージ仕様がオブジェクトを参照できることを私は知っています。この場合、参照オブジェクトを変更すると、仕様が無効になる可能性があります。

Oracle パッケージ仕様が (参照) オブジェクトに依存し、参照されるオブジェクトが変更された場合や別の方法で INVALID になる方法は他にありますか?

4

1 に答える 1

2

仕様では、変数または型を定義できます。variable が table.column%type の場合、パッケージ仕様は、変数の定義に使用されるテーブルに対する ddl 操作の影響を受ける可能性があります。同じ状況は、パッケージ ヘッダーでカーソルを定義する場合です。

また、変数定義によって参照されるテーブルとヘッダーで使用される型の両方の場合に、同義語の交換にも注意します。

次のシナリオは特権です。パッケージの所有者がいくつかの権限を失う場合 (テーブルの再作成が原因であるとしましょう)、パッケージの仕様も無効になる可能性があります。

私が書いていることが理にかなっていることを願っています。

于 2016-10-28T07:15:39.673 に答える