Il problema è che Oracle (per impostazione predefinita) tratta le stringhe vuote come NULL
. Quindi:
where name = ''
è uguale a:
where name = NULL
ed entrambi falliscono sempre (perché restituiscono NULL
).
Puoi risolvere questo problema in vari modi. Un metodo è:
where (name = INPUT or name is null and INPUT is null)
Oppure, se sai che c'è un nome non valido:
where coalesce(name, '<invalid>') = coalesce(INPUT, '<invalid>')