Search notes:

Oracle SQL: NULL

NULL is not equal to any other value

When comparing two expressions and at least one of these expressions is null, Oracle considers the expressions to be different. (The only exception to this rule I can think of is the decode statement).
Because a comparison that involves null is always false, the following statement returns 0:
select count(*) from dual where null = null;
The undocumented function sys_op_map_nonnull allows to mitigiate this nuisance: the following query returns 1:
select count(*) from dual where sys_op_map_nonnull(null) = sys_op_map_nonnull(null);

Zero length strings are NULL

A speciality of Oracle is that it considers a zero length varchar2 to be null, the following query returns 1:
select count(*) from dual where '' is null;
Unlike in SQL Server however, a string can be concatenated with the null value without the entire expression becoming null.
Because empty strings are equivalent to null, it's impossible to create empty JSON strings.
It is, however, possible to create clob values with an empty string value, see this empty_clob() example.

Indexes

Most indexes do not create index-entries for rows where all indexed columns are null.
An exception to that rule are bitmap indexes: they create an entry for all rows regardless of null or not null values.

See also

SQL functions related to null.
The not null constraint.
SQL: null values
Oracle SQL Developer allows to configure how null values are displayed under Tools -> Preferences -> Database -> Advanced.
A subquery that returns null values to a not in operator causes the entire query to not return any record at all.
The influence of null values in aggregate functions
ORA-01723: zero-length columns are not allowed
ORA-01405: fetched column value is NULL
SAS and Oracle: null handling

Index