Cita: y al colocarle como not null, al enviarle el campo vacio coloca como una cadena sin espacios
Eso sucede cuando el programador mete la pata y en lugar de poner NULL en el insert, pone ''.
Código SQL:
Ver originalINSERT INTO tabla(a, b, c)
VALUES (1, 'esto', '')
Un espacio vacío
no es un NULL, es una
cadena vacía, y en SQL son cosas diferentes.
Código SQL:
Ver originalINSERT INTO tabla(a, b, c)
VALUES (1, 'esto', NULL)
Cuidado, no es lo mismo poner:
Código SQL:
Ver originalINSERT INTO tabla(a, b, c)
VALUES (1, 'esto', NULL)
que poner
Código SQL:
Ver originalINSERT INTO tabla(a, b, c)
VALUES (1, 'esto', 'NULL')
Este segundo caso no es un NULL, es una cadena de texto que dice "NULL".
El problema lo debes resolver donde creas la query del INSERT, y validar los datos que existan. Cuando no haya datos para el campo, si el campo lo permite, se debe poner NULL y no ese espacio vacío, o bien omitir el valor que no existe (esto implica programar mejor para construir las inserciones dinámcias).
Código SQL:
Ver originalINSERT INTO tabla(a, b)
VALUES (1, 'esto')