To dziwny anachronizm w Oracle (przy ustawieniach domyślnych). Oracle rzeczywiście traktuje pusty ciąg jako NULL . Obejmuje to porównania, więc:
where mycolumn = ''
to to samo co:
where mycolumn = NULL
A to nigdy nie zwraca prawdy (NULL <> NULL ).
Moja rada? Przyzwyczaj się do używania NULL wyraźnie i pisemnie:
where mycolumn is null