Проблемът е, че Oracle (по подразбиране) третира празните низове като NULL
. Следователно:
where name = ''
е същото като:
where name = NULL
и двете винаги се провалят (защото връщат NULL
).
Можете да коригирате това по различни начини. Един метод е:
where (name = INPUT or name is null and INPUT is null)
Или, ако знаете, че има невалидно име:
where coalesce(name, '<invalid>') = coalesce(INPUT, '<invalid>')