Oracle unterscheidet nicht zwischen Nullen und leeren Zeichenfolgen?
Anscheinend scheint Orakel nicht zwischen leeren Zeichenketten und Nullen zu unterscheiden. Z.B.
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
Ich kann mir keinen guten Grund vorstellen, warum Oracle so aufgebaut ist (funktioniert dies auch in sqlplus? - Ich greife über eine Java-Schnittstelle zu, der Artikel, auf den verwiesen wird, verwendete einen PHP-Client).
Möchten Sie nicht wenigstens 0 Länge von undefinierter Länge unterscheiden? Ist das ein bekanntes Problem? Vorsätzliches Verhalten für einen bestimmten Zweck? Ein langjähriger Streit in der Datenbanktheorie? Was gibt?
(Dies ergab sich aus der Antwort von Matt Solnit aufdiese Frage.)