¿Oracle no distingue entre nulos y cadenas vacías?
Aparentemente, oracle no parece distinguir entre cadenas vacías y nulas. P.ej.
Select name from TABLE_A where id=100;
ID NAME
100 null
Update TABLE_A set NAME='' where id=100;
SELECT -->
ID NAME
100 null
SELECT length(NAME) FROM TABLE_A WHERE id=100;
null
No puedo pensar en ninguna buena razón por la que Oracle esté diseñado para comportarse de esta manera (¿lo hace también en sqlplus? -Estoy accediendo a través de una interfaz Java, el artículo al que se hace referencia utiliza un cliente php).
¿No deberías al menos distinguir 0 longitud de longitud indefinida? ¿Es este un problema conocido? ¿Comportamiento intencional para algún propósito específico? ¿Una disputa de larga duración en la teoría de bases de datos? ¿Lo que da?
(Esto fue motivado por la respuesta de Matt Solnit aesta pregunta.)