Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Oracle:Unterschied zwischen NULL- und EMPTY-String

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>')