Nie możemy tego zrobić. Musimy wpisać wszystkie kolumny i ich indywidualne funkcje NVL(). Wiem, że wydaje się to być dużym wysiłkiem, ale zastanów się, co by się stało, gdyby któraś z Twoich kolumn była typu DATA lub innym „egzotycznym” typem danych.
Jeśli masz dużo kolumn i naprawdę chcesz zaoszczędzić wysiłek, możesz wygenerować klauzule ze słownika danych:
select 'nvl('|| column_name || ', 0)'
from user_tab_columns
where table_name = 'STUDENT'
order by column_id;
Wytnij i wklej zestaw wyników do edytora.
Gdy zaczniesz na tej trasie, łatwo jest uzyskać bardziej wyrafinowaną:
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;