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

यूनिकोड डेटा को ऑरैकल में कैसे सहेजते हैं?

मैं समस्याओं के लिए पाँच संभावित क्षेत्रों को देख सकता हूँ:

  1. आप वास्तव में अपने .NET एप्लिकेशन में टेक्स्ट कैसे प्राप्त कर रहे हैं? यदि इसे स्ट्रिंग अक्षर में हार्डकोड किया गया है, तो क्या आप सुनिश्चित हैं कि कंपाइलर आपकी स्रोत फ़ाइल के लिए सही एन्कोडिंग मान रहा है?

  2. आप इसे डेटाबेस में कैसे भेज रहे हैं, इसमें कोई समस्या हो सकती है।

  3. डेटाबेस में इसे कैसे संग्रहीत किया जा रहा है, इसमें कोई समस्या हो सकती है।

  4. आप इसे डेटाबेस में कैसे ला रहे हैं, इसमें कोई समस्या हो सकती है।

  5. आप इसे बाद में फिर से कैसे प्रदर्शित कर रहे हैं, इसमें कोई समस्या हो सकती है।

अब क्षेत्र 2-4 से ऐसा लगता है कि 1 और 5 की तुलना में उनमें समस्या होने की संभावना कम है। आप पाठ को बाद में कैसे प्रदर्शित कर रहे हैं? क्या आप वास्तव में इसे .NET में डेटाबेस से बाहर ला रहे हैं, या आप इसे देखने की कोशिश करने के लिए टॉड या कुछ इसी तरह का उपयोग कर रहे हैं?

यदि आप इसे फिर से .NET से लिख रहे हैं, तो मेरा सुझाव है कि आप डेटाबेस को पूरी तरह से छोड़ दें - यदि आप केवल स्ट्रिंग को ही प्रदर्शित करते हैं, तो आप क्या देखते हैं?

मेरे पास एक लेख है जो आपको यूनिकोड समस्याओं को डीबग करने में उपयोगी लग सकता है। विशेष रूप से, हर उस स्थान पर ध्यान केंद्रित करें जहां एन्कोडिंग कर सकता था गलत हो रहा है, और सुनिश्चित करें कि जब भी आप एक स्ट्रिंग को "प्रदर्शित" करते हैं तो आप सटीक यूनिकोड वर्णों (पूर्णांक के रूप में) को डंप कर देते हैं ताकि आप जो कुछ भी अपने वर्तमान फ़ॉन्ट को प्रदर्शित करना चाहते हैं, उसके बजाय आप उनकी जांच कर सकें।

संपादित करें:ठीक है, तो डेटाबेस है समस्या में कहीं शामिल है।

मैं दृढ़ता से सुझाव है कि आप समीकरण से ASP और HTML जैसी किसी भी चीज़ को हटा दें। एक साधारण कंसोल ऐप लिखें जो कुछ नहीं करता हो लेकिन स्ट्रिंग डालें और इसे फिर से लाएं। इसे पहले और बाद में अलग-अलग यूनिकोड वर्णों (पूर्णांक के रूप में) को डंप करें। फिर यह देखने की कोशिश करें कि डेटाबेस में क्या है (जैसे टॉड का उपयोग करना)। मैं नहीं जानता कि ओरेकल स्ट्रिंग्स को अलग-अलग यूनिकोड वर्णों के अनुक्रमों में परिवर्तित करता है और फिर उन वर्णों को पूर्णांक में परिवर्तित करता है, लेकिन यह संभवतः अगली चीज़ होगी जो मैं कोशिश करूँगा।

संपादित करें:दो और सुझाव (कंसोल ऐप देखने के लिए अच्छा है, बीटीडब्ल्यू)।

  1. केवल एक वस्तु देने के बजाय, पैरामीटर के लिए डेटा प्रकार निर्दिष्ट करें। उदाहरण के लिए:

    command.Parameters.Add (":UnicodeString",
                            OracleType.NVarChar).Value = stringToSave;
    
  2. .NET में निर्मित ड्राइवर के बजाय Oracle के अपने ड्राइवर का उपयोग करने पर विचार करें। आप इसे वैसे भी करना चाह सकते हैं, क्योंकि यह आमतौर पर तेज़ और अधिक विश्वसनीय माना जाता है, मुझे विश्वास है।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. संरचना का उपयोग कैसे करें और कॉलम सूची, refcursor के डेटाटाइप कैसे प्राप्त करें?

  2. Oracle Regexp \n,\r और \t को स्पेस से बदल देगा

  3. ORA-00947 विश्व स्तर पर प्रकार घोषित करते समय पर्याप्त मान नहीं हैं

  4. मैं Oracle जावा अपडेट तक जल्दी पहुंच कैसे प्राप्त कर सकता हूं, ताकि जब ये अपडेट सार्वजनिक हो जाएं तो मैं अपने आरआईए का परीक्षण कर सकूं और फायर-ड्रिल से बच सकूं?

  5. Oracle Varchar2 से गैर-ASCII वर्णों को खोजना और हटाना