OracleDBの無効オブジェクトを調査する方法

OracleDBの無効オブジェクトを調査する方法
カテゴリ
技術
タグ
db
oracle
user_objects

背景

DBインスタンスのダンプを取得して移行を行ったのですが、なぜか無効なオブジェクトがいくつか発生してDBが上手く動かなくなってしまったためです。 原因究明はできていませんが、もし同様にDBのオブジェクトが無効になってしまった場合の調査方法と対処方法を以下に示します。

環境

バージョン:Oracle Database 12c

OS:Windows(サーバ/クライアントとも)

調査方法

下記のSQLを流すだけです。権限も特に不要のはずなので、どのユーザでも大丈夫です。また、SQL*Plusである必要もありません。

SQLDeveloperでの出力例:(オブジェクト名を隠しています) 2018 07 26 14h17 11

対処方法

上記SQLで取得された各オブジェクトに対して再コンパイルを施します。

以下、プロシージャとシノニムの例です。


関連記事

  1. 平日や営業日を取得するSQL(Postgress/Oracle)

    cropped-sql.jpg

  2. Oracleの権限テーブル(DBA_TAB_PRIVS)のバージョン差異

    oracle-e1548303868367.jpg

    oracle DBでは、権限テーブルをDBA_TAB_PRIVS(USER_TAB_PRIVSも同様)で確認できるが、バージョン11g→12cで列追加の変更があった。しかし、公式でそのことを明記しているのが見つからなかったため、ここに残します。 (愚痴。oracle…

  3. OracleDBの無効オブジェクトを調査する方法

    oracle-e1548303868367.jpg

    背景 DBインスタンスのダンプを取得して移行を行ったのですが、なぜか無効なオブジェクトがいくつか発生してDBが上手く動かなくなってしまったためです。 原因究明はできていませんが、もし同様にDB…

  4. Oracle DBのセッションを増やすor強制終了する【ORA-12516対応】

    oracle-e1548303868367.jpg

    ここでは、Oracle DBのセッションを強制終了する手順を説明します。 強制終了しなければならない状況は色々とあるとは思いますが、以下のエラーが発生した場合なんかもそうかと思います。 ORA-12516: TNS…