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

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

背景

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

環境

バージョン:Oracle Database 12c

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

調査方法

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

SQLDeveloperでの出力例:(オブジェクト名を隠しています)

対処方法

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

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


関連記事

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

    業務を行う上では、休日を除いた日付を取得したいことがあるかと思います。 これが地味に難しいですが、そこそこキレイに取得できたので紹介します。 当然ですが、祝日を除いた営業日を取得したい場合は、「祝日マスタ」のようなテーブ […]

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

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

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

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

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

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