ALTER PACKAGEとは、パッケージを明示的に再コンパイルするSQL文である。
ALTER PACKAGEでパッケージ仕様部やパッケージ本体を変更することはできない。 パッケージ仕様部を変更するには、CREATE OR REPLACE PACKAGEを使用する。 パッケージ本体を変更するには、CREATE OR REPLACE PACKAGE BODYを使用する。
Oracle Database における ALTER PACKAGE 文の構文を以下に示す。
ALTER PACKAGE [schema.]package COMPILE [ DEBUG ] [ PACKAGE | SPECIFICATION | BODY ]
SQL> ALTER PACKAGE tsuka.example COMPILE;
SQL> ALTER PACKAGE example COMPILE DEBUG;
SQL> ALTER PACKAGE example COMPILE PACKAGE;
これはデフォルトの動作であり、SPECIFICATION 及び BODY を指定しなければ、PACKAGE を指定しなくてもよい。
SQL> ALTER PACKAGE example COMPILE;
SQL> ALTER PACKAGE example COMPILE SPECIFICATION;
SQL> ALTER PACKAGE example COMPILE BODY;