To nemůžeme. Musíme zadat všechny sloupce a jejich jednotlivé funkce NVL(). Vím, že to vypadá jako hodně úsilí, ale zvažte, co by se stalo, kdyby některý z vašich sloupců byl DATE nebo nějaký jiný "exotický" datový typ.
Pokud máte mnoho sloupců a opravdu chcete ušetřit úsilí, můžete klauzule vygenerovat z datového slovníku:
select 'nvl('|| column_name || ', 0)'
from user_tab_columns
where table_name = 'STUDENT'
order by column_id;
Cut'n'paste sadu výsledků do editoru.
Jakmile začnete na této trase, je snadné být sofistikovanější:
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;