Los datos expuestos en este blog, son solo de índole informativo. Por favor realiza siempre una copia de seguridad antes de realizar cualquier cambio en tu proyecto.
Oracle/PLSQL: mensaje de error ORA-01440
Aprenda por qué y cómo resolver los mensajes de error ORA-01440 en Oracle.
describir
Cuando encuentra un error ORA-01440, aparece el siguiente mensaje de error:
- ORA-01440: la columna que se modificará debe ser nula para reducir la precisión o la escala
razón
Intentó una instrucción ALTER TABLE MODIFY en una columna numérica para reducir la precisión o la escala, pero la columna contiene datos. Solo puede modificar columnas numéricas cuyos valores sean todos NULL.
resolver
Las opciones para resolver este error de Oracle incluyen:
Opción 1
Ejecute una instrucción UPDATE para cambiar todos los valores de la columna a NULL.
Opcion 2
Ejecute una instrucción DELETE para eliminar todas las filas de la tabla.
Por ejemplo, si tiene una tabla llamada proveedores, definida de la siguiente manera:
CREATE TABLE suppliers ( supplier_id number(5), discount number(5,2) );
Luego ejecute la siguiente instrucción INSERT:
INSERT into suppliers (supplier_id, discount) VALUES (12345, 30.25);
Intenta ejecutar la siguiente instrucción ALTER TABLE:
ALTER TABLE suppliers MODIFY discount number(4,2);
Recibirá el siguiente mensaje de error:
Puede corregir el error usando cualquiera de las siguientes soluciones:
Solución #1
Puede actualizar la columna de descuento a todos los valores NULL. Esto solo funciona si el campo de descuento acepta valores NULL.
UPDATE suppliers SET discount = NULL;
Solución #2
Puede eliminar todas las entradas de la tabla de proveedores.
DELETE FROM suppliers;
Si decide eliminar todas las entradas de la tabla de proveedores, es posible que desee asegurarse de hacer una copia de seguridad de sus datos.