मैंने हमेशा सोचा है कि VARCHAR2 डेटाटाइप इतने कम वर्णों तक ही सीमित क्यों था। अधिकांश विशेषताओं के लिए, आपको 2,000 से अधिक बाइट्स की आवश्यकता नहीं है। मुझे याद है जब ओरेकल ने 2,000 बाइट्स से 4,000 तक की सीमा बढ़ा दी थी। लेकिन SQL Server 2008R2 आपको 8,000 का उपयोग करने देता है। हम चरित्र डेटा के बारे में बात कर रहे हैं और 2,000 या 4,000 बाइट की सीमा मुझे मनमाना लग रही थी। अब Oracle 12c में, आप अधिकतम 32KB के लिए VARCHAR2(32767) का उपयोग कर सकते हैं। लेकिन इससे पहले कि आप इस नई सुविधा का उपयोग कर सकें, आपको थोड़ा काम करने की जरूरत है। लीक से हटकर, आपको एक त्रुटि मिलेगी।
SQL> टेबल टेस्ट_टैब बनाएं (वैल वर्कर 2 (32000)); टेबल टेस्ट_टैब बनाएं (वैल वर्कर 2 (32000))Oracle 12c में एक नया पैरामीटर, MAX_STRING_SIZE शामिल है जो नियंत्रित करता है कि आपका VARCHAR2 डेटाटाइप कितना बड़ा हो सकता है। इस पैरामीटर को मानक या विस्तारित पर सेट किया जा सकता है। डिफ़ॉल्ट मानक है जो VARCHAR2 को 4000 बाइट्स तक सीमित करता है। इस पैरामीटर को मानक से विस्तारित में बदलना एकतरफा यात्रा है। आप वापस नहीं लौट सकते। परिवर्तन करने के लिए, आपको इंस्टेंस को स्टार्टअप अपग्रेड करना होगा, पैरामीटर को संशोधित करना होगा और एक स्क्रिप्ट चलाने की आवश्यकता होगी।
SQL> shutdown immediateDatabase closed.Database dismounted.ORACLE instance shut down.SQL> startup upgradeORACLE instance started.Total System Global Area 1043886080 bytesFixed Size 2296280 bytesVariable Size 654313000 bytesDatabase Buffers 381681664 bytesRedo Buffers 5595136 bytesDatabase mounted.Database opened.SQL> alter सिस्टम सेट max_string_size=EXTENDED स्कोप=दोनों;सिस्टम बदल गया।SQL> @?/rdbms/admin/utl32k.sqlइसे चलने में कुछ समय लग सकता है। एक बार हो जाने के बाद, सामान्य रूप से खोलने के लिए इंस्टेंस को बाउंस करें।
अब मैं इस बड़े डेटा प्रकार के साथ एक तालिका बना सकता हूं।
SQL> तालिका बनाएं test_tab (val varchar2(32000));तालिका बनाई गई।