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

अगर हमारे पास US7ASCII कैरेक्टरसेट है तो यह हमें नॉन-असीसी कैरेक्टर को स्टोर करने की अनुमति क्यों देता है?

यह काम करता है क्योंकि निम्नलिखित शर्तें दोनों सत्य हैं:

  • क्लाइंट कैरेक्टर सेट आपके डेटाबेस कैरेक्टर सेट के बराबर है।
  • चरित्र सेट किसी भी बाइट मान की अनुमति देता है

आपका डेटाबेस कैरेक्टर सेट और आपका क्लाइंट कैरेक्टर सेट US7ASCII . पर सेट है . ऐसे मामले में प्रत्येक डेटा बिना किसी रूपांतरण के एक-एक करके लिखा/पढ़ा जाता है, यानी आपके द्वारा भेजे गए बाइट डेटाबेस में बिल्कुल लिखे जाते हैं। संभवत:आपने NLS_LANG सेट नहीं किया है आपके क्लाइंट साइड पर बिल्कुल भी लेकिन Oracle इसे AMERICAN_AMERICA.US7ASCII पर डिफॉल्ट करता है ।

US7ASCII एक 7-बिट एन्कोडिंग है। मुझे लगता है कि एक शुद्ध ASCII एप्लिकेशन (जिसे ढूंढना काफी मुश्किल हो सकता है) केवल 8-बिट आर्किटेक्चर में संग्रहीत 8 वें बिट को अनदेखा कर देगा। अन्य चरित्र सेट, उदा। AL32UTF8 प्रत्येक बाइट मान की अनुमति न दें। इस मामले में ऐसे पात्रों को प्लेसहोल्डर द्वारा प्रतिस्थापित किया जाएगा, उदा। ¿ या ?

ध्यान दें, आपने अपने क्लाइंट कैरेक्टर को US7ASCII . पर सेट किया है जो अधिकतर सही नहीं है। इसे आपके एप्लिकेशन द्वारा उपयोग किए जाने वाले वर्ण सेट पर ठीक से सेट करें, फिर ° बदल दिया जाएगा।

यदि आप chcp . कमांड के साथ SQL*प्लस चेक कंसोल कोडपेज का उपयोग करते हैं तो , सम्मान locale charmap . अपना NLS_LANG सेट करें sqlplus शुरू करने से पहले उसके अनुसार पर्यावरण चर।



  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.jdbc.driver मौजूद नहीं है

  2. उपयोगकर्ताओं को Oracle में अतिरिक्त स्कीमा तक पहुँच प्रदान करने का सही तरीका

  3. Oracle में खुले लेनदेन देखें

  4. Sqoop द्वारा Oracle को अनुक्रम फ़ाइल निर्यात करना

  5. Oracle में PL SQL कोड कैसे लपेटें?