以下の例では、「NAME1」以外のすべてが oracle 11g の結果として null を与える理由です。
スペースを明示的に言及すると、スペースが必要になります。それ以外の場合は、空の文字列ではなく null のみになります。これを明確にするのを手伝ってください。
NAME2 で空のスペースを指定しましたが、それでも null が返されます。
select
NVL(NAME,' ') AS NAME1,
NVL(NAME,'') AS NAME2,
NVL(NAME,NULL) AS NAME3,
NAME AS NAME4
from employee
出力:
(スペース),null,null,null