Det kan vi inte göra. Vi måste skriva ut alla kolumner och deras individuella NVL()-funktioner. Jag vet att det verkar vara mycket ansträngning, men fundera på vad som skulle hända om någon av dina kolumner är en DATUM eller någon annan "exotisk" datatyp.
Om du har många kolumner och du verkligen vill spara ansträngning kan du skapa klausulerna från dataordboken:
select 'nvl('|| column_name || ', 0)'
from user_tab_columns
where table_name = 'STUDENT'
order by column_id;
Klipp ut och klistra in resultatuppsättningen i en redigerare.
När du väl börjar på den här rutten är det lätt att bli mer sofistikerad:
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;