Oracle
 sql >> Base de données >  >> RDS >> Oracle

Oracle :différence entre la chaîne NULL et la chaîne VIDE

Le problème est qu'Oracle (par défaut) traite les chaînes vides comme NULL . D'où :

where name = ''

est identique à :

where name = NULL

et les deux échouent toujours (car ils renvoient NULL ).

Vous pouvez résoudre ce problème de différentes manières. Une méthode est :

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

Ou, si vous savez qu'il y a un nom invalide :

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