ALTER PACKAGE文は、パッケージ仕様部、パッケージ本体またはその両方を明示的に再コンパイルします。 明示的に再コンパイルすることによって、実行時に暗黙的に再コンパイルする必要がなくなり、関連する実行時コンパイル・エラーが発生しなくなります。
この文では、同時にすべてのパッケージ・オブジェクトを再コンパイルします。 ALTER PROCEDURE文またはALTER FUNCTION文を使用して、パッケージに含まれるプロシージャまたはファンクションを個別に再コンパイルすることはできません。
必要な権限
パッケージの所有者に必要な権限はありません。
別のユーザーのパッケージの場合はALTER ANY PROCEDUREが必要です。
SQL構文
ALTER PACKAGE [Owner.]PackageNameCOMPILE [PACKAGE|SPECIFICATION|BODY] [
compiler_parameters_clause
[…]] [REUSE SETTINGS]
パラメータ
ALTER PACKAGE文には、次のパラメータがあります。
パラメータ | 説明 |
---|---|
[Owner.]PackageName |
再コンパイルするパッケージの名前。 |
COMPILE |
パッケージ仕様部、パッケージ本体またはその両方の再コンパイルを強制するために使用される必須の句。 |
[PACKAGE|SPECIFICATION|BODY ] |
パッケージ仕様部と本体の両方を再コンパイルするには、PACKAGE を指定します。 パッケージ仕様部を再コンパイルするには、SPECIFICATION を指定します。 パッケージ本体を再コンパイルするには、BODY を指定します。
|
compiler_parameters_clause |
このオプション句を使用して、いずれかのPL/SQL永続コンパイラ・パラメータの値を指定します。PL/SQL永続コンパイラ・パラメータには、PLSQL_OPTIMIZE_LEVEL、PLSCOPE_SETTINGSおよびNLS_LENGTH_SEMANTICSがあります。
文の中で各パラメータを1回指定できます。 この句のパラメータを省略して |
REUSE SETTINGS |
このオプション句を使用して、TimesTenがコンパイラのスイッチ設定を削除および再取得しないようにします。REUSE SETTINGS を指定すると、TimesTenによって既存の設定が保持され、値を指定していないパラメータのコンパイルに使用されます。 |
説明
パッケージ仕様部を再コンパイルすると、TimesTenは、パッケージ内のプロシージャまたはファンクションをコールするプロシージャなど、仕様部に依存しているローカル・オブジェクトを無効にします。 パッケージの本体もまた仕様部に依存しています。 この後、先にこれらの依存オブジェクトのいずれかを明示的に再コンパイルしないで参照すると、このオブジェクトはTimesTenによって実行時に暗黙的に再コンパイルされます。
パッケージ本体を再コンパイルした場合、パッケージ仕様部に依存しているオブジェクトは無効になりません。 本体が依存しているオブジェクトが無効な場合、TimesTenは最初にこれらのオブジェクトを再コンパイルします。 TimesTenによって本体が正常に再コンパイルされると、その本体は有効になります。
パッケージを再コンパイルすると、仕様部と本体の両方が明示的に再コンパイルされます。 コンパイル・エラーが発生しなかった場合、仕様部および本体は有効になります。 コンパイル・エラーが発生した場合、TimesTenによってエラーが返され、パッケージは無効のままになります。
関連項目