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

Oracle ने डिफ़ॉल्ट NLS_LANG सेट किया

शायद यही होता है:

  • आपका क्लाइंट कैरेक्टर सेट CP1252 या ISO-8859-15 जैसा कुछ होना चाहिए जबकि वास्तव में आपका क्लाइंट वास्तव में UTF8 का उपयोग करता है।
  • इस वर्ण सेट (UTF8) में, प्रतीक á दो बाइट्स लेता है, इसलिए आपका क्लाइंट इन दो बाइट्स को भेजता है, जबकि Oracle को इन्हें CP1252 के रूप में मानने के लिए कहता है। CP1252 में दो वर्णों के लिए दो बाइट्स कोड होते हैं, जिसके परिणामस्वरूप DB इनपुट को दो वर्णों के रूप में व्याख्यायित करता है, इसलिए length('à') 2 के बराबर है (और यदि आप इस स्ट्रिंग को सम्मिलित करते हैं तो डालने का परिणाम à . के बराबर नहीं है )
  • जब आप वर्ण सेट को सही ढंग से सेट करते हैं, तो oracle द्वारा इनपुट को एकल वर्ण के रूप में सही ढंग से माना जाता है, और इसकी लंबाई 1 (अभी भी दो बाइट्स) होती है।

निष्कर्ष:अपना क्लाइंट कैरेक्टर सेट ठीक से सेट करें या आपको अनुवाद त्रुटियां मिलेंगी (आपको इस तरह से अवैध वर्ण नहीं मिलेंगे लेकिन आपको अजीब प्रतीक मिल सकते हैं (¿) )।

डेटाबेस कैरेक्टर सेट निर्माण के समय सेट किया गया है और आम तौर पर निर्यात/रिक्त डेटाबेस/आयात बनाने के माध्यम से बदला जाता है।



  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 और SQL सर्वर में NVARCHAR के बीच अंतर?

  2. ORA-04091:तालिका [blah] उत्परिवर्तित हो रही है, ट्रिगर/फ़ंक्शन इसे नहीं देख सकता है

  3. क्या COUNT(पंक्तिबद्ध) COUNT(*) से तेज़ है?

  4. त्रुटि ORA-01804 के लिए पाठ पुनर्प्राप्त करने का प्रयास करते समय त्रुटि

  5. JDBC का उपयोग करके अपने IN पैरामीटर के रूप में उपयोगकर्ता परिभाषित रिकॉर्ड के साथ PL/SQL प्रक्रिया को कॉल करना