Oracle hataları

ORA-00918: column ambiguously defined

Kolon adı belirsiz

ORA-00918: column ambiguously defined

Bir kolon adı sorgudaki birden fazla tabloda var ve Oracle hangisini kastettiğinizi anlayamıyor. Kolonun başına tablo takma adını yazın.

ORA-00918 ne demek?

Join, aynı kolon adını taşıyan tabloları bir araya getirdiğinde o adın niteliksiz kullanımı belirsiz olur. Oracle tahmin etmek yerine ORA-00918 döndürür. Bir alt sorgu aynı adlı iki kolon verdiğinde de aynısı olur.

ORA-00918 neden olur?

ORA-00918 nasıl çözülür?

  1. Join’lerde her kolonu tablo takma adıyla niteleyin.
  2. Alt sorgularda aynı adlı kolonlara farklı takma adlar verin.
  3. Sorgu bugün çalışsa bile bunu alışkanlık edinin: sonradan yapılan bir ALTER TABLE o zaman sorguyu bozamaz.

ORA-00918 örneği

İki tabloda da ID kolonu var:

-- ORA-00918: column ambiguously defined
SELECT id FROM orders o JOIN order_lines l ON l.order_id = o.id;

-- Çalışır
SELECT o.id FROM orders o JOIN order_lines l ON l.order_id = o.id;

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

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