Oracle não distingue entre nulls e strings vazias?

Aparentemente o oracle não parece distinguir entre strings vazias e nulls. Por exemplo.

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

Não consigo pensar em nenhum bom motivo pelo qual a Oracle seria construída para se comportar dessa maneira (isso também acontece no sqlplus? -Estou acessando através de uma interface java, o artigo referenciado usou um cliente php).

Você não gostaria de, pelo menos, distinguir comprimento 0 de comprimento indefinido? Isso é um problema conhecido? Comportamento intencional para algum propósito específico? Uma longa disputa na teoria de banco de dados? O que da?

(Isso foi solicitado pela resposta de Matt Solnit paraessa questão.)

questionAnswers(5)

yourAnswerToTheQuestion