Problém je v tom, že Oracle (ve výchozím nastavení) považuje prázdné řetězce za NULL
. Proto:
where name = ''
je stejný jako:
where name = NULL
a oba vždy selžou (protože vrátí NULL
).
Můžete to opravit různými způsoby. Jedna metoda je:
where (name = INPUT or name is null and INPUT is null)
Nebo, pokud víte, že existuje neplatné jméno:
where coalesce(name, '<invalid>') = coalesce(INPUT, '<invalid>')