ORA-00947: not enough values
İfade, doldurulacak kolon sayısından az değer veriyor. Kolon listesini VALUES ya da SELECT listesiyle karşılaştırıp eksik olanı ekleyin.
ORA-00947 ne demek?
Oracle değerleri kolonlarla sırasına göre eşleştirir. ORA-00947, sağ tarafta soldan daha az öğe olduğunu söyler. Kolon listesi verilmezse INSERT tablodaki her kolon için değer vermek zorundadır; yani yeni eklenen bir kolon eski kodu bozmaya yeter. Tersi durum ORA-00913’tür.
ORA-00947 neden olur?
- Kolonlardan az değer veren bir
INSERT. - Tabloya kolon eklendikten sonra kolon listesiz
INSERT INTO t VALUES (…). - Tablonun kolonlarından az kolon seçen
INSERT INTO t SELECT …. - Seçilen kolonlardan fazla değişkeni olan bir
SELECT … INTO.
ORA-00947 nasıl çözülür?
- İki taraftaki öğeleri sayın.
- Her
INSERT’te kolonları adıyla yazın; böylece yeni kolonlar kodu bozmaz. - Güncel yapıyla karşılaştırın:
DESC tablo_adi.
ORA-00947 örneği
Üç kolon, iki değer:
-- ORA-00947: not enough values
INSERT INTO customers (id, name, city) VALUES (2, 'Acme');
-- Çalışır
INSERT INTO customers (id, name, city) VALUES (2, 'Acme', 'İzmir');
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-00913ORA-01400ORA-00904 Tüm Oracle hataları →
Oracle dokümantasyonu: ORA-00947. Oracle, Oracle Corporation’ın tescilli ticari markasıdır. SQLlightspeed’in Oracle ile bir bağlantısı yoktur.