ALTER PACKAGE
目的
パッケージはPL/SQLを使用して定義されます。このため、この項では一般的な情報について説明します。構文およびセマンティクスの詳細は、『Oracle Database PL/SQL言語リファレンス』を参照してください。
ALTER
PACKAGE
文を使用すると、パッケージ仕様部またはパッケージ本体(あるいはその両方)を明示的に再コンパイルできます。明示的に再コンパイルすることによって、実行時に暗黙的に再コンパイルする必要がなくなり、また、実行時のコンパイル・エラーとパフォーマンス上のオーバーヘッドもなくなります。
パッケージ中のすべてのオブジェクトは、1つの単位として格納されているため、ALTER
PACKAGE
文によって、すべてのパッケージ・オブジェクトがまとめて再コンパイルされます。ALTER
PROCEDURE
文またはALTER
FUNCTION
文を使用して、パッケージ中の一部のプロシージャまたはファンクションを再コンパイルすることはできません。
ノート:
この文では、既存のパッケージの宣言または定義は変更されません。パッケージを再宣言または再定義する場合は、「CREATE PACKAGE」または「CREATE PACKAGE BODY」にOR
REPLACE
句を指定します。
前提条件
パッケージを変更するには、パッケージが自分のスキーマ内にある必要があります。自分のスキーマ内にない場合は、ALTER
ANY
PROCEDURE
システム権限が必要です。
構文
alter_package::=
(package_compile_clause
: この句の構文の詳細は、『Oracle Database PL/SQL言語リファレンス』を参照してください。)
セマンティクス
IF EXISTS
IF EXISTS
は、既存の表を変更する場合に指定します。
ALTER VIEW
にIF NOT EXISTS
を指定すると、ORA-11544: Incorrect IF EXISTS clause for ALTER/DROP statement
が発生します。
schema
パッケージが含まれているスキーマを指定します。schema
を指定しない場合、パッケージは自分のスキーマ内にあるとみなされます。
package_name
再コンパイルするパッケージの名前を指定します。
package_compile_clause
この句の構文とセマンティクスの詳細およびパッケージの作成とコンパイルの詳細は、『Oracle Database PL/SQL言語リファレンス』を参照してください。
EDITIONABLE | NONEDITIONABLE
この句を使用すると、schema
のスキーマ・オブジェクト・タイプPACKAGE
のエディショニングが後で有効化されたときに、そのパッケージをエディション・オブジェクトにするか非エディション・オブジェクトにするかを指定できます。デフォルトは、EDITIONABLE
です。エディション・オブジェクトと非エディション・オブジェクトの変更の詳細は、『Oracle Database開発ガイド』を参照してください。