ALTER FUNCTIONは、ストアド・ファンクションを明示的に再コンパイルするSQL文である。ファンクションを明示的に再コンパイルすることによって、実行時に暗黙的に再コンパイルする必要が無くなり、実行時のコンパイルエラーやパフォーマンス上のオーバーヘッドが無くなる。
ALTER FUNCTION foo COMPILE
他のスキーマにあるファンクションをコンパイルするには、スキーマ名を指定する。
ALTER FUNCTION bar.foo COMPILE
PL/SQLデバッガで使用するためのコードを生成するには、DEBUGオプションを指定する。
ALTER FUNCTION foo COMPILE DEBUG
または、PL/SQLコンパイラのPLSQL_DEBUGオプションにTRUEを指定する。
ALTER FUNCTION foo COMPILE PLSQL_DEBUG = TRUE
ALTER FUNCTION文を使用して、既存のプロシージャの宣言や定義を変更することはできない。ファンクションを再宣言または再定義する場合は、CREATE OR REPLACE FUNCTION文を使用する。