30代文系SEの暮らし

興味のあることを中心に有益な情報発信をしてます。IT、育児、商品・飲食店レビューなど

【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して結果を取得できるか確認します。