Oracle does not distinguish between empty string and NULL
.
This is why the recommended row data type is VARCHAR2
rather than VARCHAR
: the latter should make this distinction, but currently does not.
In the trivalent logic used by SQL
, NULL = NULL
(which is a synonym for '' = ''
in Oracle) is evaluated as NULL
(not FALSE
, but NULL
) and therefore WHERE
filtered.
source share