ORA-12899: value too large for column
OracleNe demek?
Bir karakter/veri sütununa, tanımlı maksimum uzunluğundan daha uzun bir değer yazılmaya çalışıldı. Örneğin VARCHAR2(10) sütununa 15 karakterlik metin sığmaz.
Neden olur?
Sütun genişliğinin veriye göre yetersiz olması; çok baytlı karakter kümesinde (UTF8) karakter sayısının bayt sınırını aşması (BYTE semantiği); veri göçünde farklı karakter kümesi; birleştirme (concat) sonucunun uzaması.
Nasıl çözülür?
Sütunu genişletin: ALTER TABLE tablo MODIFY (sutun VARCHAR2(100)); Çok baytlı içerik için CHAR semantiği kullanın: sutun VARCHAR2(100 CHAR). Uzun değerleri kısaltmak gerekiyorsa SUBSTR ile budayın. Hata mesajı gerçek ve izin verilen uzunluğu verir; hangi kaydın taştığını LENGTH/LENGTHB ile bulun.
Aynı motorda diğer kayıtlar
- ORA-06550line/column PLS-... PL/SQL compilation error
- ORA-04068existing state of packages has been discarded
- ORA-01427single-row subquery returns more than one row
- ORA-30926unable to get a stable set of rows in the source tables
- ORA-08103object no longer exists
- ORA-01843not a valid month
- ORA-14400inserted partition key does not map to any partition