ORA-00913: too many values
İfade, alacak kolon sayısından fazla değer veriyor. Kolon listesini VALUES ya da SELECT listesiyle veya alt sorgunun kolonlarını karşılaştırmanın beklediğiyle karşılaştırın.
ORA-00913 ne demek?
Oracle değerleri kolonlarla sırasına göre eşleştirir; bu yüzden iki tarafta aynı sayıda öğe olmalıdır. ORA-00913, sağ tarafta daha fazla öğe olduğunu söyler. Tersi durum ORA-00947’dir.
ORA-00913 neden olur?
- Kolonlardan fazla değer veren bir
INSERT. - Kaynak tablonun daha çok kolonu olduğu
INSERT INTO t SELECT * FROM s. - Tek kolon beklenen yerde iki kolon döndüren bir alt sorgu:
WHERE id IN (SELECT id, ad …). - Kod aynı kalırken tablodan silinmiş bir kolon.
ORA-00913 nasıl çözülür?
- İki taraftaki öğeleri sayın.
INSERT’te kolonları her zaman adıyla yazın;SELECT *’ın eşleşmesine güvenmeyin.- Alt sorgunun, dış karşılaştırmanın kullandığı kolonları tam olarak döndürmesini sağlayın.
- Güncel yapıya
DESC tablo_adiile bakın.
ORA-00913 örneği
İki kolon için üç değer:
-- ORA-00913: too many values
INSERT INTO customers (id, name) VALUES (2, 'Acme', 3);
-- Çalışır
INSERT INTO customers (id, name) VALUES (2, 'Acme');
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-00947ORA-00904ORA-01427 Tüm Oracle hataları →
Oracle dokümantasyonu: ORA-00913. Oracle, Oracle Corporation’ın tescilli ticari markasıdır. SQLlightspeed’in Oracle ile bir bağlantısı yoktur.