Question: エラー ORA-04063 “%s has errors” の原因は何ですか。 ORA-04063 "%s has errors"
Attempt to execute a stored procedure or use a view that has errors. For stored procedures, the problem could be syntax errors or references to other, non-existent procedures. For views, the problem could be a reference in the view's defining query to a non-existent table. Can also be a table which has references to non-existent or inaccessible types.

解決策

無効なビューまたはプロシージャにアクセスしようとしました。

ビューは FORCE オプションで作成された可能性があります。 この無効なビューに対する GRANT SELECT のような操作は ORA-04063 エラーを返します。

以下のケースでは、tab1 テーブルは存在しません。 FORCEオプションが使用されているため、ビューが作成されます。

その結果、この無効なビューに対してGRANT SELECTを発行すると、ORA-04063エラーが返されます。

SQL>CREATE OR REPLACE FORCE VIEW vst.myview
AS SELECT * FROM tab1;

Warning: View created with compilation errors.

SQL> GRANT SELECT ON vst.myview TO USER_A;

ORA-04063: view "VST.MYVIEW" has errors

ビューを既存のテーブルに作成すると、GRANT SELECTはORA-04063エラーメッセージを返さないようにします。

SQL>CREATE OR REPLACE FORCE VIEW vst.myview
AS SELECT * FROM dba_tables;

View created.

SQL> GRANT SELECT ON vst.myview TO USER_A;

Grant succeeded.

問題は解決しました!

関連 OraTips

– Oracle 12c の非推奨データベース パラメーターについて – Oracle 12c にアップグレードする場合、これらのパラメーターに精通しておくとよいでしょう。 詳細はこちらをご覧ください。
– Oracle DatabaseのConnect ThroughによるProxyユーザー認証 – Proxy認証メカニズムにより、ユーザーは自分のユーザーとしてログインしますが、そのユーザーのパスワードを知らなくても別のスキーマにアクセスできます。 データガードの設定、切り替え、フェイルオーバーなどのタスクは、すべてCDBレベルで実行されます。 データガードがCDBデータベースで初期設定されると、すべてのPDBがターゲットにレプリケートされます。 詳細はこちら
– デスクトップから VirtualBox データベースへのアプリケーションの接続 VirtualBox マシン間の接続、またはデスクトップから VirtualBox マシンに通信するためのネットワークのセットアップを行う場合は、こちらの簡単な手順に従ってください

Articles

コメントを残す

メールアドレスが公開されることはありません。