हम ऐसा नहीं कर सकते। हमें सभी कॉलम और उनके व्यक्तिगत NVL () फ़ंक्शन टाइप करने होंगे। मुझे पता है कि यह बहुत प्रयास की तरह लगता है, लेकिन विचार करें कि यदि आपका कोई कॉलम DATE या कोई अन्य "विदेशी" डेटाटाइप है तो क्या होगा।
यदि आपके पास बहुत सारे कॉलम हैं और आप वास्तव में प्रयास बचाना चाहते हैं तो आप डेटा डिक्शनरी से क्लॉज उत्पन्न कर सकते हैं:
select 'nvl('|| column_name || ', 0)'
from user_tab_columns
where table_name = 'STUDENT'
order by column_id;
परिणाम सेट को एक संपादक में काटें'' पेस्ट करें।
एक बार जब आप इस मार्ग पर शुरू कर देते हैं तो इसे और अधिक परिष्कृत करना आसान हो जाता है:
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;