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.
解決策
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 マシンに通信するためのネットワークのセットアップを行う場合は、こちらの簡単な手順に従ってください