Apparemment, l'oracle ne semble pas faire la distinction entre les chaînes vides et les valeurs nulles. Par exemple.Oracle ne fait pas de distinction entre les valeurs nulles et les chaînes vides?
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
Je ne peux pas penser à une bonne raison pour laquelle Oracle serait construit pour se comporter de cette façon (fait-elle cela dans sqlplus aussi? -Je suis accès via une interface java, l'article référencé utilisé une client php). Vous ne voulez pas au moins distinguer 0 longueur d'une longueur indéfinie?
est-ce un problème connu? Comportement intentionnel dans un but précis? Un conflit de longue date dans la théorie des bases de données? Ce qui donne?
(Cette demande a été la réponse à this question Matt Solnit.)
Cette question a été postée comme étant liée, bien qu'elle n'aborde pas le "pourquoi": http://stackoverflow.com/questions/1171196/difference-between-varchar-and-varchar2 –