12 Şubat 2017

Oracle ORA-00942 Table or View Does Not Exist Çözümü ve Diğer Oracle Hataları

Oracle ORA-00942 Table or View Does Not Exist Hatası ve Çözümü

Oracle'da ORA-00942 Table or view does not exist (ORA-00942: tablo veya görüntü mevcut degil) hatasını TOAD üzerinden HR(Human Resource) kullanıcısı ile anlatacağım. PL/SQL çalışmak için HR(Human Resource) veri tabanını önerebilirim.

Basit bir SELECT yaptığımızda ilk resimdeki gibi hatayı alırız.
SELECT * FROM EMPLOYEES

Bu sorunun iki çözümü var. İlki ve basit olan SELECT komutu kullanırken Table(Tablo) başına Schema belirtmeniz gerekmektedir. Aşağıdaki gibi komutu yazarsanız hata vermeyecektir;
SELECT * FROM HR.EMPLOYEES

İkinci çözüm ise Tabloyu SELECT eden kullanıcıya yetki verirseniz sorun düzelir. Doğrudan yetki vermek istemiyorsanız SYNONYM ile ona yetki verebilirsiniz;
CREATE PUBLIC SYNONYM EMPLOYEES FOR HR.EMPLOYEES;
GRANT SELECT ON EMPLOYEES TO HR;

Şimdi aşağıdaki komutu çalıştırabilirsiniz;
SELECT * FROM EMPLOYEES

Diğer ORACLE Hataları ve Tanımları;

1) ORA-00904: Geçersiz belirleyici (Invalid Identifier) şeklinde alınan hata mesajıdır. Tabloda olmayan bir alanı SQL'de kullandığımızda bu hata mesajını alırız ve o tablo veya kolona Data atmaz Error mesaj döner.

2) ORA-00936: Kullandığınız sorgudaki yazım yanlışlığından ortaya çıkar.

3) ORA-00942: Oracle yetki sorunu varsa bunu da tablo yok olarak gösterir güvenlik sebebiyle.