【Oracle】無効なビュー・プロシージャ・トリガーを取得するSQL

無効なビュー・プロシージャ・トリガーを取得する

Oracleでは無効なオブジェクトを取得することができます。

テーブルを変更すると、ビュー、インデックス、ストアドプロシージャ、ストアドファンクション、トリガーなどが無効になってしまうことがあります。

どれが無効なオブジェクトなのかをSQLを使って取得することができます。

Oracle 無効なビュー・プロシージャ・トリガーを取得する

-- 無効なオブジェクトを取得する
SELECT OBJECT_NAME,OBJECT_TYPE,STATUS 
FROM DBA_OBJECTS 
WHERE STATUS = 'INVALID' 
AND OWNER = 'ユーザー' 
ORDER BY OBJECT_NAME;
OBJECT_NAME OBJECT_TYPE STATUS
TRG_001 TRIGGER INVALID
PRO_EMP PROCEDURE INVALID
V_TBL01 VIEW INVALID

Oracleの無効なオブジェクトを取得するには「DBA_OBJECTS」を使います。

「DBA_OBJECTS」の「STATUS=’INVALID’」が無効なオブジェクトです。「OWNER = ‘ユーザー’ 」は任意のユーザーに変更してください。

無効なオブジェクトは、もう一度再作成(再コンパイル)すれば有効になります。

以上、Oracleで無効なビュー・プロシージャ・トリガーを取得するSQLでした。

コメント