ALTER PROCEDURE
目的
パッケージはPL/SQLを使用して定義されます。このため、この項では一般的な情報について説明します。構文およびセマンティクスの詳細は、『Oracle Database PL/SQL言語リファレンス』を参照してください。
ALTER
PROCEDURE
文を使用すると、スタンドアロンのストアド・プロシージャを明示的に再コンパイルできます。明示的に再コンパイルすることによって、実行時に暗黙的に再コンパイルする必要がなくなり、また、実行時のコンパイル・エラーとパフォーマンス上のオーバーヘッドもなくなります。
パッケージの一部であるプロシージャを再コンパイルする場合、ALTER
PACKAGE
文を使用して、そのパッケージ全体を再コンパイルします(「ALTER PACKAGE」を参照)。
ノート:
この文では、既存のプロシージャの宣言または定義は変更されません。プロシージャを再宣言または再定義する場合は、OR
REPLACE
句を指定してCREATE
PROCEDURE
文を使用します(「CREATE PROCEDURE」を参照)。
ALTER
PROCEDURE
文は、ALTER
FUNCTION
文と似ています。詳細は、「ALTER FUNCTION」を参照してください。
前提条件
プロシージャは、自分のスキーマ内にある必要があります。自分のスキーマ内にない場合は、ALTER
ANY
PROCEDURE
システム権限が必要です。
構文
alter_procedure::=
(procedure_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
を指定しない場合、プロシージャは自分のスキーマ内にあるとみなされます。
procedure_name
再コンパイルするプロシージャの名前を指定します。
procedure_compile_clause
この句の構文とセマンティクスの詳細およびプロシージャの作成とコンパイルの詳細は、『Oracle Database PL/SQL言語リファレンス』を参照してください。
EDITIONABLE | NONEDITIONABLE
この句を使用すると、schema
のスキーマ・オブジェクト・タイプPROCEDURE
のエディショニングが後で有効化されたときに、そのプロシージャをエディション・オブジェクトにするか非エディション・オブジェクトにするかを指定できます。デフォルトは、EDITIONABLE
です。エディション・オブジェクトと非エディション・オブジェクトの変更の詳細は、『Oracle Database開発ガイド』を参照してください。