ヘッダーをスキップ
Oracle Database PL/SQL言語リファレンス
11g リリース1(11.1)
E05670-03
  目次
目次
索引
索引

戻る
戻る
 
次へ
次へ
 

ALTER PROCEDURE文

ALTER PROCEDURE文は、スタンドアロン・ストアド・プロシージャを明示的に再コンパイルします。 明示的に再コンパイルすることによって、実行時に暗黙的に再コンパイルする必要がなくなり、また、実行時のコンパイル・エラーとパフォーマンス上のオーバーヘッドもなくなります。

パッケージの一部であるプロシージャを再コンパイルするには、ALTER PACKAGE文を使用してパッケージ全体を再コンパイルします。


注意:

この文では、既存のプロシージャの宣言または定義は変更されません。 スタンドアロン・ストアド・プロシージャを再宣言または再定義するには、CREATE PROCEDURE文OR REPLACE句とともに使用します。

ALTER PROCEDURE文は、ALTER FUNCTION文に非常に似ています。 詳細は、「ALTER FUNCTION文」を参照してください。

前提条件

プロシージャが自身のスキーマ内にある必要があります。自身のスキーマ内にない場合は、ALTER ANY PROCEDUREシステム権限が必要です。

構文

alter_procedure::=

alter_procedure
alter_procedure.gifの説明

compiler_parameters_clause::=

compiler_parameters_clause
compiler_parameters_clause.gifの説明

キーワードとパラメータの説明

schema

プロシージャが含まれているスキーマを指定します。 schemaを省略すると、プロシージャは自身のスキーマ内に存在するとみなされます。

procedure

再コンパイルするプロシージャの名前を指定します。

COMPILE

COMPILEを指定すると、プロシージャを再コンパイルすることができます。 COMPILEキーワードは必須です。プロシージャは、有効か無効かに関係なく再コンパイルされます。

再コンパイル中、コンパイラの永続的なスイッチ設定はすべて削除され、セッションから再度取得されてコンパイルの最後に格納されます。 この処理を回避するには、REUSE SETTINGS句を指定します。

DEBUG

DEBUGを指定すると、PL/SQLデバッガで使用するためのコードを生成して格納するようにPL/SQLコンパイラに指示できます。 この句を指定した場合の効果は、compiler_parameters_clausePLSQL_DEBUG = TRUEを指定した場合と同じです。


参照:

プロシージャのデバッグの詳細は、『Oracle Databaseアドバンスト・アプリケーション開発者ガイド』を参照してください。

compiler_parameters_clause

この句のプロシージャに対する動作は、ファンクションに対する動作と同様です。 詳細は、「ALTER FUNCTION」の「compiler_parameters_clause」を参照してください。

REUSE SETTINGS

この句のプロシージャに対する動作は、ファンクションに対する動作と同様です。 詳細は、「ALTER FUNCTION」「REUSE SETTINGS」を参照してください。

プロシージャの再コンパイル: 例 ユーザーhrが所有しているプロシージャremove_empを明示的に再コンパイルするには、次の文を発行します。

ALTER PROCEDURE hr.remove_emp
   COMPILE;

remove_empの再コンパイル中にデータベースでコンパイル・エラーが発生しなかった場合、remove_empは有効となります。その後、データベースによって、実行時に再コンパイルせずにこのプロシージャを実行できます。 remove_empの再コンパイル時にコンパイル・エラーが発生した場合は、データベースによってエラーが戻され、remove_empは無効なままになります。

また、データベースによってすべての依存オブジェクトも無効にされます。 これらのオブジェクトには、remove_empをコールするプロシージャ、ファンクションおよびパッケージ本体などがあります。 その後、最初に明示的に再コンパイルせずにこれらのオブジェクトのいずれかを参照すると、データベースによって実行時にそのオブジェクトが暗黙的に再コンパイルされます。

関連トピック