update TABELA
set campo1 = NVL(NULLIF(v_var1 ,campo1) ,campo1)
, campo2 = NVL(NULLIF(v_var2 ,campo2) ,campo2)
, campo3 = NVL(NULLIF(v_var3 ,campo3) ,campo3)
, campo4 = NVL(NULLIF(v_var4 ,campo4) ,campo4)
.
.
.
Mas neste caso, o uso do NULLIF só serviu pra COMPLICAR o entendimento E também pra deixar mais lento. Poderia ter usado o bom e velho DECODE no lugar do NVL(NULLIF(... que ia dar o mesmo resultado. (sendo que usando apenas 1 função).
set decode ( v_var1, campo1, campo1, v_var1)
, decode ( v_var2, campo2, campo2, v_var2)
.
.
.