C'est un anachronisme étrange dans Oracle (en utilisant les paramètres par défaut). Oracle traite en effet une chaîne vide comme NULL . Cela inclut dans les comparaisons, donc :
where mycolumn = ''
est identique à :
where mycolumn = NULL
Et cela ne retourne jamais vrai (NULL <> NULL ).
Mon conseil? Habituez-vous à utiliser NULL explicitement et en écrivant :
where mycolumn is null