【IT】ORA-00942:表またはビューが存在しません。
久しぶりにテスト環境で動作検証をしようとしたところ、検索画面で機能によっては検索時にシステムエラーになっているでは。
ログを見てみると、以下のエラーが出ていたので原因と対応方法をまとめ。
ちなみに、Oracaleのデータベースについて学ぶならUdemyがおすすめです。頻繁にUdemyではセールをやっているので、セールを狙って買いましょう!Udemyのセールはこちらの記事で最新セール情報が確認できます。
エラーメッセージ
ORA-00942:表またはビューが存在しません。
原因
・SQL で指定した表名やビュー名が間違っている、または本当に存在しない
・指定した表やビューへアクセスする権限がない
対応
まず、指定している表名やビュー名が間違っていないことを確認します。
間違っていない場合はその表もしくはビューが存在することを確認します。
以下のSQLでオブジェクトの一覧を確認します。
-
- ユーザーのテーブル一覧を確認する
select * from user_tables;
-
- ユーザーのビュー一覧を確認する
select * from user_views;
-
- データベース全体のテーブルを確認する
select * from all_tables;
-
- データベース全体のビュー一覧を確認する
select * from all_views;
存在する場合はその表、もしくはビューに対する権限があるか確認します。
以下のSQLを実行して確認できます。
SELECT grantee
,table_name
,privilege
FROM dba_tab_privs
WHERE grantee = 'ユーザー名';
権限がない場合は次のコマンドを実行して権限を付与します。
GRANT SELECT ON テーブル名 TO ユーザー名;
再度、SELECTして結果を取得できるか確認します。