Oracle hataları

ORA-01400: cannot insert NULL into column

NOT NULL kolona NULL eklenemez

ORA-01400: cannot insert NULL into ("SCHEMA"."TABLE"."COLUMN")

Bir INSERT, NOT NULL bir kolonu boş bıraktı. Mesaj kolonun adını verir. Bir değer gönderin, kolona varsayılan değer tanımlayın ya da bir trigger’ın veya identity kolonun doldurmasını sağlayın.

Ne anlama gelir?

NOT NULL kısıtı, her satırın o kolonda bir değeri olması gerektiği anlamına gelir. INSERT kolondan hiç bahsetmiyorsa ve kolonun varsayılan değeri yoksa — ya da açıkça NULL ekleniyorsa — Oracle satırı reddeder ve kolonu adıyla bildirir; örneğin ("HR"."EMPLOYEES"."HIRE_DATE").

Yaygın nedenler

Nasıl çözülür?

  1. Mesajdaki kolon adını okuyun ve INSERT’e bir değerle ekleyin.
  2. Kolona varsayılan değer verin: ALTER TABLE t MODIFY (kolon DEFAULT …); açıkça gönderilen NULL’ları da değiştirmek için Oracle 12c ve sonrasında DEFAULT ON NULL.
  3. Anahtarlar için identity kolon (12c ve sonrası) ya da sequence.NEXTVAL kullanın.
  4. Oracle’da boş metnin NULL olduğunu unutmayın.

Örnek

NULL gönderilse bile kolonu doldurun (12c ve sonrası):

ALTER TABLE orders MODIFY (status DEFAULT ON NULL 'NEW');

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-00001ORA-12899ORA-01722 Tüm Oracle hataları →

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