मैं समझता हूं कि ओरेकल कई वर्ण सेट का समर्थन करता है, लेकिन यह निर्धारित कैसे कर सकता है कि वर्तमान 11 जी सिस्टम जहां मैं काम करता हूं वह कार्यक्षमता सक्षम है?मैं कैसे बता सकता हूं कि मेरा ओरेकल सिस्टम यूनिकोड या मल्टीबाइट वर्णों का समर्थन करने के लिए सेट है या नहीं?
उत्तर
SELECT *
FROM v$nls_parameters
WHERE parameter LIKE '%CHARACTERSET';
आपको डेटाबेस और राष्ट्रीय चरित्र सेट दिखाएगा। डेटाबेस वर्ण सेट CHAR
और VARCHAR2
कॉलम में डेटा के एन्कोडिंग को नियंत्रित करता है। यदि डेटाबेस उन स्तंभों में यूनिकोड का समर्थन करता है, तो डेटाबेस वर्ण सेट AL32UTF8 (या कुछ दुर्लभ मामलों में UTF8) होना चाहिए। राष्ट्रीय चरित्र सेट NCHAR
और NVARCHAR2
कॉलम में डेटा के एन्कोडिंग को नियंत्रित करता है। यदि डेटाबेस वर्ण सेट यूनिकोड का समर्थन नहीं करता है, तो आप इन डेटा प्रकारों के साथ कॉलम में यूनिकोड डेटा स्टोर करने में सक्षम हो सकते हैं, लेकिन यह आमतौर पर सिस्टम में जटिलता जोड़ता है - अनुप्रयोगों को राष्ट्रीय चरित्र सेट का समर्थन करने के लिए बदलना पड़ सकता है।
यूनिकोड एक वर्ण एन्कोडिंग प्रणाली है कि हर चरित्र में बोली जाने वाली भाषाओं में से अधिकांश में दुनिया में समर्थन यूनिकोड के लिए Oracle डाटाबेस में परिभाषित करता है, है:
Character Set Supported in RDBMS Release Unicode Encoding
AL24UTFFSS 7.2 - 8i UTF-8
UTF8 8.0 - 11g UTF-8
UTFE 8.0 - 11g UTF-EBCDIC
AL32UTF8 9i - 11g UTF-8
AL16UTF16 9i - 11g UTF-16
सुनिश्चित करें कि आपके डेटाबेस यूनिकोड है करने के लिए, मूल्य की जाँच करें "NLS_CHARACTERSET" पैरामीटर का और यह उपरोक्त सूची से AL32UTF8 या AL16UTF16 होना चाहिए।
SQL>
SQL> SELECT * FROM v$nls_parameters WHERE parameter='NLS_CHARACTERSET';
PARAMETER VALUE CON_ID
--------------------------- ------------------- ----------
NLS_CHARACTERSET AL32UTF8 0
पैरामीटर का मान परिवर्तित करने के लिए, कृपया पीछे का खिलाड़ी ले लो क्योंकि परिवर्तन डेटाबेस कथन वापस नहीं किया जा सकता है और निम्नलिखित का प्रयोग करें बयान:
SHUTDOWN IMMEDIATE
STARTUP MOUNT;
ALTER SYSTEM ENABLE RESTRICTED SESSION;
ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;
ALTER SYSTEM SET AQ_TM_PROCESSES=0;
ALTER DATABASE OPEN;
ALTER DATABASE CHARACTER SET AL32UTF8;
SHUTDOWN IMMEDIATE;
STARTUP;