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」は、現行のユーザーがアクセスできるオブジェクトをすべて示します。
まとめ
OracleのSQLでINVALID(状態が無効)を確認する方法を紹介しました。
今回紹介した「ALL_OBJECTS」以外にも、データベース内のオブジェクトをすべて示してくれる「DBA_OBJECTS」や、現行のユーザーが所有するオブジェクトをすべて示てくれる「USER_OBJECTS」などがありますので、チェックしてみてください。
おつかれさまでした。