ORA-01400: cannot insert NULL into (column)
OracleNe demek?
NOT NULL constraint'i bulunan bir sütuna NULL değer eklenmeye ya da o sütun NULL yapılmaya çalışıldı. Zorunlu bir alan boş bırakılamaz.
Neden olur?
INSERT ifadesinde zorunlu sütuna değer verilmemesi, UPDATE ile sütunun NULL'a çekilmesi, sütun için DEFAULT tanımlı olmaması veya alt sorgudan/uygulamadan boş değer gelmesi.
Nasıl çözülür?
Hata mesajındaki sütun adına geçerli bir değer girin. Sütuna makul bir varsayılan tanımlayın: ALTER TABLE tablo MODIFY (sutun DEFAULT 0); (DEFAULT yalnızca sütun INSERT'te hiç belirtilmediğinde devreye girer; açıkça NULL gönderilen değerler için 12c+ DEFAULT ON NULL kullanın: ALTER TABLE tablo MODIFY (sutun DEFAULT ON NULL 0);) Kural gerçekten zorunlu değilse constraint'i kaldırın: ALTER TABLE tablo MODIFY (sutun NULL); Uygulamada boş değerleri gönderilmeden önce doğrulayın.
Aynı motorda diğer kayıtlar
- library cache lockWait: library cache nesne handle'ı üzerinde contention (parse/DDL sıralaması)
- ORA-00604error occurred at recursive SQL level
- ORA-01438value larger than specified precision allowed for this column
- ORA-02291integrity constraint violated - parent key not found
- ORA-02292integrity constraint violated - child record found
- ORA-00979not a GROUP BY expression
- ORA-00918column ambiguously defined