Non possiamo farlo. Abbiamo bisogno di digitare tutte le colonne e le loro singole funzioni NVL(). So che sembra un grande sforzo, ma considera cosa accadrebbe se una qualsiasi delle tue colonne fosse una DATE o qualche altro tipo di dati "esotico".
Se hai molte colonne e vuoi davvero risparmiare fatica puoi generare le clausole dal dizionario dei dati:
select 'nvl('|| column_name || ', 0)'
from user_tab_columns
where table_name = 'STUDENT'
order by column_id;
Taglia e incolla il set di risultati in un editor.
Una volta che inizi questo percorso è facile diventare più sofisticati:
select case when column_id > 1 then ',' end ||
'nvl('|| column_name || ',' ||
case when data_type = 'DATE' then 'sysdate'
when data_type = 'VARCHAR2' then '''DEF'''
else '0' end ||
')'
from user_tab_columns
where table_name = 'STUDENT'
order by column_id;