Oracle
 sql >> डेटाबेस >  >> RDS >> Oracle

तालिका में प्रत्येक कॉलम के लिए डिफ़ॉल्ट मान कैसे रखें?

हम ऐसा नहीं कर सकते। हमें सभी कॉलम और उनके व्यक्तिगत 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;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. फ़ाइल हेल्पर्स एक्सेल से Oracle db

  2. डेटाबेस लिंक पर बल्क इंसर्ट पर प्रतिबंध पर काबू पाना

  3. ORA-00907 दायां कोष्ठक समस्या गुम है - इनसाइड इंसर्ट क्वेरी द्वारा ऑर्डर के साथ चयन करें

  4. Oracle क्लाइंट 11 के साथ .Net एप्लिकेशन परिनियोजित करें

  5. Oracle संग्रहित प्रक्रिया से दो वापसी मूल्य कैसे प्राप्त करें?