Das Problem ist, dass Oracle (standardmäßig) leere Zeichenfolgen als NULL
behandelt . Daher:
where name = ''
ist dasselbe wie:
where name = NULL
und beide schlagen immer fehl (weil sie NULL
zurückgeben ).
Sie können dies auf verschiedene Weise beheben. Eine Methode ist:
where (name = INPUT or name is null and INPUT is null)
Oder, wenn Sie wissen, dass ein ungültiger Name vorliegt:
where coalesce(name, '<invalid>') = coalesce(INPUT, '<invalid>')