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