Documentation Oracle alertes développeurs à ce problème, en remontant au moins jusqu'à la version 7.
Oracle a choisi de représenter les valeurs NULL par le "impossible" valeur technique. Par exemple, une valeur NULL dans un numérique, emplacement sera stocké comme "moins zéro", il est impossible de valeur. Tout au moins les zéros qui sont le résultat de calculs seront convertis en positif zéro avant d'être stockés.
Oracle a également choisi, à tort, à considérer la VARCHAR chaîne de longueur zéro (la chaîne vide), être un impossible de valeur, et un choix approprié pour représenter la valeur NULL. Il s'avère que la chaîne vide est loin d'être un impossible de la valeur. C'est même l'identité sous l'opération de concaténation de chaîne!
Documentation Oracle avertit concepteurs de bases de données et aux développeurs une version future de Oracle pourrait
briser cette association entre la chaîne vide et la valeur NULL, et de briser n'importe quel code qui dépend de l'association.
Il existe des techniques pour drapeau NULS autres que impossible valeurs, mais l'Oracle ne pas les utiliser.
(J'utilise le mot "location" ci-dessus pour signifier l'intersection d'une ligne et d'une colonne.)