Oracle SQLでINVALID(状態が無効)を確認する方法

OracleのSQLでINVALID(状態が無効)を確認する方法です。

Oracle SQLでINVALID(状態が無効)を確認する方法

Oracleでは、ストアドプロシージャをコンパイルすることによって、呼び出し元のストアドプロシージャの状態が無効(INVALID)になることがあります。

他にも、古くなったシステムとかで、DBリンク先がなくなったりしてて、INVALIDになったまま放置されているストアドプロシージャなんかもありますよね(普通ないと思うけど)。

そんな INVALIDなOracleオブジェクトを確認するSQL があるので紹介します。


INVALID(状態が無効)なオブジェクトを抽出する

INVALID(状態が無効)なオブジェクトを抽出するSQLです。

--Oracle INVALIDを抽出するSQL
select OBJECT_TYPE, OWNER, OBJECT_NAME
from ALL_OBJECTS
where STATUS = 'INVALID'
--and OWNER = 'スキーマを指定'--(if any)
order by OBJECT_TYPE, OBJECT_NAME;

ALL_OBJECTS」は、現行のユーザーがアクセスできるオブジェクトをすべて示します。

ALL_OBJECTS (oracle.com)

まとめ

OracleのSQLでINVALID(状態が無効)を確認する方法を紹介しました。

今回紹介した「ALL_OBJECTS」以外にも、データベース内のオブジェクトをすべて示してくれる「DBA_OBJECTS」や、現行のユーザーが所有するオブジェクトをすべて示てくれる「USER_OBJECTS」などがありますので、チェックしてみてください。

おつかれさまでした。

この記事がお役に立ちましたら シェア をお願いいたします。