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

जब ऑरैकल डीबी में फारसी चरित्र डालें तो मुझे प्रश्न चिह्न दिखाई देता है

जब आप कहते हैं कि आप सर्वर पर चलते हैं, तो आपका मतलब SQL*Plus से है?

जांच करने वाली पहली बात यह है कि वास्तविक चरित्र क्या संग्रहीत किया जा रहा है - इसे जांचने के लिए DUMP फ़ंक्शन का उपयोग करें:

Oracle डंप फंक्शन

यह आपको बताएगा कि वास्तव में क्या संग्रहीत है। यदि आपके क्लाइंट ऐप और Oracle सर्वर के बीच की श्रृंखला उपयुक्त नहीं है, तो आपको वर्ण सेट रूपांतरण हो सकता है।

मान लें कि सही वर्ण सहेजा जा रहा है, तो आप सर्वर/एसक्लप्लस पर जो देखते हैं वह प्रदर्शन पर वर्ण रूपांतरण है। अर्थात। ओरेकल चरित्र को सही ढंग से "सेवारत" कर रहा है, लेकिन डिस्प्ले इसे आपकी अपेक्षा के अनुरूप नहीं संभाल रहा है। इसे ठीक करने के लिए, आपको NLS_LANG पर्यावरण चर को सही वर्ण सेट पर सेट करना होगा।

उदाहरण के लिए, हाल ही के प्रोजेक्ट में डिफ़ॉल्ट:

set NLS_LANG=AMERICAN_AMERICA.US7ASCII

फिर दिए गए कुछ डेटा को क्वेरी करें:

NAME
-----------------------------------
MS ELLIE MARTALL

लेकिन:

set NLS_LANG=AMERICAN_AMERICA.US8PC437

फिर दी गई क्वेरी को चलाना:

NAME
-----------------------------------
MS ÉLLIE MARTALL

और यह भी:

set NLS_LANG=AMERICAN_AMERICA.WE8ISO8859P15

दिया:

NAME
-----------------------------------
MS ╔LLIE MARTALL

यहां मुख्य बात यह है कि वास्तविक डेटा वही है, जिस तरह से आपके डिस्प्ले पर डेटा प्रस्तुत किया जा रहा है वह अलग है, और उस व्यवहार को NLS_LANG द्वारा नियंत्रित किया जा सकता है।



  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 में संख्यात्मक मान होते हैं

  2. Oracle और Kafka को कैसे एकीकृत करें?

  3. EXक्स्प () Oracle में फंक्शन

  4. एक टीम में Oracle में संग्रहीत कार्यविधियों के साथ काम करने के लिए उपकरण?

  5. एसक्यूएल * प्लस हमेशा निकास कोड 0 देता है?