Oracle hataları

ORA-00942: table or view does not exist

Tablo ya da görünüm yok (veya üzerinde yetkiniz yok)

ORA-00942: table or view does not exist

Oracle tabloyu ya da görünümü bulamıyor — ya da nesne var ama üzerinde yetkiniz yok. Önce adı ve şema önekini, sonra yetkileri kontrol edin. Oracle iki durumda da bilerek aynı hatayı gösterir.

Ne anlama gelir?

Hangi nesnelerin var olduğunu açığa vurmamak için Oracle, nesne yokken de görme yetkiniz yokken de ORA-00942 döndürür. Yani bu hata tablonun silindiğini kanıtlamaz. Oracle 23ai’den itibaren mesaj nesnenin adını da içerir.

Yaygın nedenler

Nasıl çözülür?

  1. Nesnenin var olup olmadığını ve sahibini kontrol edin: SELECT owner, object_type FROM all_objects WHERE object_name = 'EMPLOYEES' (yalnızca görebildiğiniz nesneleri gösterir; bir DBA DBA_OBJECTS’e bakabilir).
  2. Ada sahibini önek olarak ekleyin ya da bir synonym oluşturun.
  3. Sahibinden ya da bir DBA’dan yetki isteyin: GRANT SELECT ON hr.employees TO app_user.
  4. PL/SQL için yetkiyi rol yerine doğrudan prosedür sahibine verin.
  5. Nereye bağlı olduğunuzu doğrulayın: SELECT sys_context('USERENV','CON_NAME'), user FROM dual.

Örnek

Nesne nerede ve ben görebiliyor muyum?

SELECT owner, object_name, object_type
  FROM all_objects
 WHERE object_name = 'EMPLOYEES';

Doğrudan yetki (definer’s rights PL/SQL için gerekli):

GRANT SELECT ON hr.employees TO app_owner;

SQLlightspeed’de

Bir ifade hata verdiğinde SQLlightspeed’in hata paneli, hata kodunu sade bir Türkçe açıklama ve ne yapmanız gerektiğine dair bir öneriyle; Oracle’ın kendi mesajı ve Oracle dokümantasyonuna bağlantıyla birlikte gösterir — bu hata ve sık görülen onlarca başka hata için.

İlgili hatalar

ORA-01031ORA-00904ORA-01017 Tüm Oracle hataları →

Oracle dokümantasyonu: ORA-00942. Oracle, Oracle Corporation’ın tescilli ticari markasıdır. SQLlightspeed’in Oracle ile bir bağlantısı yoktur.