HOME >> Tips >> Oracle Tips >> SQL

ビューやストアドプロシージャなどを再コンパイルする

 
文書番号:20256




ビューやストアドプロシージャ、パッケージなどのオブジェクトを再コンパイルするSQL。

Oracle に格納されているソースを使用して再コンパイルする構文です。

ALTER VIEW      ビュー名 COMPILE;
ALTER FUNCTION  ファンクション名 COMPILE;
ALTER PACKAGE   パッケージ名 COMPILE;
ALTER PROCEDURE プロシージャ名 COMPILE;
ALTER TRIGGER   トリガー名 COMPILE;
ALTER JAVA      JAVA名 COMPILE;
ALTER TYPE      タイプ名 COMPILE;
ALTER INDEXTYPE インデックスタイプ名 COMPILE;
ALTER MATERIALIZED VIEW マテリアライズドビュー名 COMPILE;
パッケージをコンパイルする際にヘッダとボディを個別にコンパイルする場合は以下のようにします。

ALTER PACKAGE <パッケージ名> COMPILE PACKAGE;
ALTER PACKAGE <パッケージ名> COMPILE BODY;
全部のビューを再コンパイルしたいとか、全部のプロシージャーを再コンパイルしたいといった場合は ビューやプロシージャーの一覧を取得してそのすべてに再コンパイルを実行します。


オブジェクトの一覧を取得するSQLはこちら
オブジェクトの一覧を取得する(USER_OBJECTS / DBA_OBJECTS)


プロシージャの一覧から再コンパイルするSQLを作成するサンプル

SELECT 'ALTER PROCEDURE ' || OBJECT_NAME || ' COMPILE;'
FROM   USER_OBJECTS
WHERE  OBJECT_TYPE = 'PROCEDURE';