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

Oracle JDBC वर्णसेट और 4000 वर्ण सीमा

Oracle 12.1 से पहले, एक VARCHAR2 कॉलम डेटाबेस कैरेक्टर सेट में डेटा के 4000 बाइट्स को संग्रहीत करने तक सीमित है, भले ही इसे VARCHAR2(4000 CHAR) घोषित किया गया हो। . चूंकि आपकी स्ट्रिंग के प्रत्येक वर्ण को UTF-8 वर्ण सेट में 2 बाइट संग्रहण की आवश्यकता होती है, आप कॉलम में 2000 से अधिक वर्णों को संग्रहीत करने में सक्षम नहीं होंगे। बेशक, वह संख्या बदल जाएगी यदि आपके कुछ पात्रों को वास्तव में केवल 1 बाइट संग्रहण की आवश्यकता है या यदि उनमें से कुछ को 2 बाइट से अधिक संग्रहण की आवश्यकता है। जब डेटाबेस कैरेक्टर सेट विंडोज-1252 होता है, तो आपके स्ट्रिंग के प्रत्येक कैरेक्टर को स्टोरेज के केवल एक बाइट की आवश्यकता होती है ताकि आप कॉलम में 4000 कैरेक्टर स्टोर कर सकें।

चूंकि आपके पास लंबे तार हैं, क्या कॉलम को CLOB . के रूप में घोषित करना संभव होगा? के बजाय VARCHAR2 . के रूप में ? यह (प्रभावी रूप से) लंबाई सीमा को हटा देगा (CLOB के आकार की एक सीमा है) यह ओरेकल संस्करण और ब्लॉक आकार पर निर्भर करता है लेकिन यह कम से कम कई जीबी रेंज में है)।

यदि आप Oracle 12.1 या बाद के संस्करण का उपयोग कर रहे हैं, तो max_string_size पैरामीटर आपको एक के अधिकतम आकार को बढ़ाने की अनुमति देता है VARCHAR2 स्तंभ 4000 बाइट्स से 32767 बाइट्स तक



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. मेमोरी में पूरी फाइल लोड किए बिना बीएलओबी (ओरेकल) में एक बड़ी फाइल कैसे डालें?

  2. Oracle टेबल ऑडिट के लिए जोड़ा गया दिनांक और संशोधित दिनांक

  3. Oracle SQL - N पंक्तियों के कॉलम मानों को 1 पंक्ति में N कॉलम में बदलें

  4. क्या बाइंड वेरिएबल्स के साथ ग्रुप बाय का उपयोग करना संभव है?

  5. डेटाबेस खोज में NULL मान प्रदर्शन को कैसे प्रभावित करते हैं?