Coalesce can take multiple arguments. NVL only two arguments
NVL is strict as far datatype is concerned .
Only thing is that NVL does the automatic datatype conversion .
SQL> select NVL(1,'9') from dual;
SQL> select NVL(1,'A') from dual;
select NVL(1,'A') from dual
ERROR at line 1:
ORA-01722: invalid number
I think you missed my point .
What I wanted to explain
Both COALESCE and NVL need the all parameter are of same type.
Other wise will give Errors ( error type might be different )
And NVL is more flexible than COALESCE as it will try to auto convert the datatype , whiel Coalesce doesn't do that .
By stating that, I was agreeing with Michaels . :)