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-01441
Aprenda por qué y cómo resolver los mensajes de error ORA-01441 en Oracle.
describir
Cuando encuentra un error ORA-01441, aparece el siguiente mensaje de error:
- ORA-01441: la columna que se modificará debe ser nula para reducir la longitud de la columna
razón
Intentó una sentencia MODIFY ALTER TABLE en una columna de caracteres para reducir su tamaño, pero la columna contiene datos. Solo puede modificar columnas de caracteres 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), supplier_name char(100) );
Luego ejecute la siguiente instrucción INSERT:
INSERT into suppliers (supplier_id, supplier_name) VALUES (12345, 'IBM');
Intenta ejecutar la siguiente instrucción ALTER TABLE:
ALTER TABLE suppliers MODIFY supplier_name char(75);
Recibirá el siguiente mensaje de error:
Puede corregir el error usando cualquiera de las siguientes soluciones:
Solución #1
Puede actualizar la columna de nombre del proveedor a todos NULL. Esto solo funciona si el campo de nombre del proveedor acepta valores NULL.
UPDATE suppliers SET supplier_name = 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.