ORA kodları ve arkalarındaki gerçek sebepler
Oracle hata mesajları belirtiyi söyler, sebebi değil. ORA-01722 "geçersiz sayı" der; doğrudur ama işe yaramaz, çünkü asıl soru hangi kolon olduğu ve oraya neden bir metin geldiğidir. Bu liste her kodu sahada onu üreten duruma bağlıyor, böylece mesajdan değil olası sebepten başlayabiliyorsunuz.
Arama kodda, mesajda ve sebepte birden çalışıyor; yarım hatırlanan bir parça yetiyor: "table or view" yazın ORA-00942 gelsin, 1795 yazın ifade sınırı gelsin. Kodlar alana göre gruplanmış (veri, nesne, kısıt, kaynak), çünkü birbiriyle ilgisiz görünen hatalar çoğu zaman aynı yerden çıkıyor.
Yalnızca sayı tutan bir kolonda neden ORA-01722 alıyorum?
- Neredeyse her zaman örtük dönüşüm: VARCHAR2 bir kolonu sayı sabitiyle karşılaştırmak Oracle'ı her satırı çevirmeye zorlar ve satırlardan biri sayısal değildir. Metinle karşılaştırın ya da kolon tipini düzeltin.
ORA-00942 ile ORA-01031 arasındaki fark ne?
- Oracle göremediğiniz nesneler için — var olsun ya da olmasın — "tablo veya görünüm mevcut değil" der; yetkisiz kullanıcıdan varlığı gizler. ORA-01031 ise nesneyi gördüğünüz ama o işlem için gereken yetkiye sahip olmadığınız anlamına gelir.