ORA-12899: value too large for column (valor demasiado grande para la columna)
Oracle¿Qué significa?
Se escribió en una columna de caracteres/datos un valor más largo que la longitud máxima definida. Por ejemplo, un texto de 15 caracteres no cabe en una columna VARCHAR2(10).
¿Por qué ocurre?
El ancho de la columna es insuficiente para los datos; en un conjunto de caracteres multibyte (UTF8) el número de caracteres supera el límite de bytes (semántica BYTE); un conjunto de caracteres distinto durante la migración de datos; el resultado de una concatenación que crece en longitud.
Cómo solucionarlo
Amplíe la columna: ALTER TABLE my_table MODIFY (my_column VARCHAR2(100)); Para contenido multibyte use semántica CHAR: my_column VARCHAR2(100 CHAR). Si hay que acortar valores largos, trúnquelos con SUBSTR. El mensaje de error indica la longitud real y la permitida; encuentre el registro que desborda con LENGTH/LENGTHB.
Más entradas de este motor
- ORA-06550línea/columna PLS-... error de compilación PL/SQL
- ORA-04068existing state of packages has been discarded (se descartó el estado existente de los paquetes)
- ORA-01427single-row subquery returns more than one row (una subconsulta de una sola fila devuelve más de una fila)
- ORA-30926unable to get a stable set of rows in the source tables (no se puede obtener un conjunto estable de filas en las tablas de origen)
- ORA-08103object no longer exists (el objeto ya no existe)
- ORA-01843not a valid month (mes no válido)
- ORA-14400inserted partition key does not map to any partition (la clave de partición insertada no corresponde a ninguna partición)