Oracle hataları

ORA-00936: missing expression

Eksik ifade

ORA-00936: missing expression

Oracle bir kolon, değer ya da ifade bekledi ama kullanılabilir bir şey bulamadı — çoğunlukla SELECT listesinde sonda kalmış ya da çift virgül, boş bir SELECT ya da değer olması gereken yerde bir anahtar sözcük.

Ne anlama gelir?

SQL’de pek çok yer bir ifade ister: SELECT listesi, karşılaştırmanın iki tarafı, fonksiyon argümanları, değer listeleri. Bu yerlerden biri boşsa ya da orada değer yerine bir anahtar sözcük varsa Oracle ifadeyi kuramaz ve ORA-00936 döndürür.

Yaygın nedenler

Nasıl çözülür?

  1. SELECT listesinde FROM’dan hemen önce virgül kalıp kalmadığına bakın.
  2. WHERE ve ON içindeki her karşılaştırmanın iki tarafında da değer olduğunu kontrol edin.
  3. SQL üretiliyorsa çalıştırmadan önce yazdırıp üretilen parçalara bakın.
  4. Boş yeri bulmak için ifadeyi parça parça çalıştırın.

Örnek

FROM’dan önce kalan virgül:

-- ORA-00936
SELECT id, name, FROM customers;

-- Çalışır
SELECT id, name FROM customers;

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-00933ORA-00907ORA-00904 Tüm Oracle hataları →

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