जावा से केस-insensitively एक SQL डेटाबेस क्वेरी करने के लिए बढ़िया तरीका इस प्रकार है:ओरेकल एसक्यूएल में परिणाम केस-असंवेदनशील कैसे सॉर्ट करें?
String name = ...; // get the user's input (case is unknown)
String sql = "select * from Person where lower(name) = ?";
Object jdbcBindVariable = name.toLowerCase();
// ... using JDBC, bind that variable and run the SQL query
समस्या यह है कि कम आवरण एक भाषा-विशिष्ट आपरेशन है। उदाहरण के लिए, "I
" पत्र को कम-आवरण "अंग्रेजी और तुर्की में अलग-अलग परिणाम देता है। उपरोक्त कोड में, वहाँ दो कम आवरण संचालन कर रहे हैं:
- स्ट्रिंग # toLowerCase() विधि
- कम() डेटाबेस समारोह
मैं कैसे सुनिश्चित कर सकते हैं कि जावा और डेटाबेस एक ही लोकेल का उपयोग कर रहे हैं और इस तरह एक वैध तुलना कर रहे हैं?
मुझे पता है कि स्ट्रिंग क्लास में एक लोअरकेस (लोकेल) विधि है, लेकिन मुझे कैसे पता चलेगा कि डेटाबेस का लोकेल क्या उपयोग कर रहा है? क्या मैं इसे प्रोग्रामिक रूप से देख सकता हूं, या क्या मुझे उस लोकेल को हार्ड-कोड करना है जिसके साथ मुझे लगता है कि डेटाबेस (इस मामले में ओरेकल 10 जी) कॉन्फ़िगर किया गया है?
यह इतना आसान और फिर भी मैंने कभी इसके बारे में सोचा नहीं। –