Utilizar NVL2 en vez de DECODE con valores nulos NULL en Oracle
Para procesar valores nulos usamos el NVL, DECODE o NVL2
Si el primer argumento es nulo devolver el segundo argumento.
select nvl(null,'alfa') from dual;
----
alfa
1 row selected.
Si el primer argumento no es nulo devolver el mismo primer argumento.
select nvl('data','alfa') from dual;
----
data
1 row selected.
Si el primer argumento es igual segundo devolver el tercer argumento.
select decode(null,null,'alfa','beta') from dual;
----
alfa
1 row selected.
Si el primer argumento no es igual segundo devolver el cuarto argumento.
select decode('data',null,'alfa','beta') from dual;
----
beta
1 row selected.
Si el primer argumento es nulo devolver el tercer argumento.
select nvl2(null,'alfa','beta') from dual;
----
beta
1 row selected.
Si el primer argumento no es nulo devolver el segundo argumento.
select nvl2('data','alfa','beta') from dual;
----
alfa
1 row selected.