Problem polega na tym, że Oracle (domyślnie) traktuje puste ciągi jako NULL
. Stąd:
where name = ''
to to samo co:
where name = NULL
i oba zawsze zawodzą (ponieważ zwracają NULL
).
Możesz to naprawić na różne sposoby. Jedna metoda to:
where (name = INPUT or name is null and INPUT is null)
Lub, jeśli wiesz, że nazwa jest nieprawidłowa:
where coalesce(name, '<invalid>') = coalesce(INPUT, '<invalid>')