¿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.)

Respuestas a la pregunta(5)

Su respuesta a la pregunta