sql >> Base de Datos >  >> RDS >> Oracle

Oracle:diferencia entre cadena NULL y EMPTY

El problema es que Oracle (por defecto) trata las cadenas vacías como NULL . Por lo tanto:

where name = ''

es lo mismo que:

where name = NULL

y ambos siempre fallan (porque devuelven NULL ).

Puedes arreglar esto de varias maneras. Un método es:

where (name = INPUT or name is null and INPUT is null)

O, si sabe que hay un nombre no válido:

where coalesce(name, '<invalid>') = coalesce(INPUT, '<invalid>')