Questo è uno strano anacronismo in Oracle (usando le impostazioni predefinite). Oracle, infatti, tratta una stringa vuota come NULL . Questo include nei confronti, quindi:
where mycolumn = ''
è uguale a:
where mycolumn = NULL
E questo non restituisce mai true (NULL <> NULL ).
Il mio consiglio? Abituati a usare NULL esplicitamente e scrivendo:
where mycolumn is null