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