Problemet är att Oracle (som standard) behandlar tomma strängar som NULL
. Därför:
where name = ''
är detsamma som:
where name = NULL
och båda misslyckas alltid (eftersom de returnerar NULL
).
Du kan fixa detta på olika sätt. En metod är:
where (name = INPUT or name is null and INPUT is null)
Eller, om du vet att det finns ett ogiltigt namn:
where coalesce(name, '<invalid>') = coalesce(INPUT, '<invalid>')