DBAtlas · Atlas de operaciones de bases de datos

ORA-01438: value larger than specified precision allowed for this column (valor mayor que la precisión permitida para la columna)

Oracle

¿Qué significa?

Se escribió en una columna NUMBER un número que supera los límites de precisión y escala definidos. Por ejemplo, un valor con parte entera de 3 dígitos no cabe en una columna NUMBER(4,2).

¿Por qué ocurre?

La definición NUMBER(p,s) de la columna es demasiado estrecha para los datos; el resultado de un cálculo es mayor de lo esperado; la escala decimal reduce los dígitos disponibles para la parte entera (NUMBER(5,3) permite solo 2 dígitos enteros).

Cómo solucionarlo

Amplíe la capacidad de la columna según el rango real de los datos: ALTER TABLE my_table MODIFY (my_column NUMBER(12,2)); Redondee el valor en la aplicación o ajústelo a la escala con ROUND/TRUNC. Para encontrar la fila que desborda, acote su consulta durante las pruebas y añada validación de entrada.

Abrir en DBAtlas →

Más entradas de este motor