सही सेटिंग्स के साथ आपकी स्क्रिप्ट SQL*Plus के साथ काम करती है। यहाँ मैंने इसका परीक्षण करने के लिए क्या किया:
- (जाहिर है) आपके डेटाबेस को यूनिकोड का समर्थन करना चाहिए। यदि आवश्यक हो तो NVARCHAR2 का प्रयोग करें।
- अपने क्लाइंट एप्लिकेशन को सही तरीके से सेटअप करें। सुनिश्चित करें कि आपका NLS_LANG चर सही ढंग से सेट है, इसे यूनिकोड का समर्थन करना चाहिए। मैंने अपना
AMERICAN_ENGLISH.UTF8
. पर सेट किया है . जबकि SQL*Plus की डॉस विंडो सभी यूनिकोड वर्णों को प्रदर्शित नहीं करेगी, उन्हें फ़ाइल में सही ढंग से स्पूल किया जाएगा। - (स्पष्ट रूप से भी) सुनिश्चित करें कि स्पूल की गई फ़ाइल को पढ़ने वाला एप्लिकेशन इसे सही वर्ण सेट में खोलता है।
अब स्क्रिप्ट के लिए:
SQL> select * from v$nls_parameters where parameter = 'NLS_CHARACTERSET';
PARAMETER VALUE
------------------ ------
NLS_CHARACTERSET UTF8
SQL> create table street_points (data varchar2(10));
Table created
SQL> INSERT INTO street_points VALUES (chr(53401)||chr(53398));
1 row inserted
यह रूसी अक्षरों को सम्मिलित करेगा ЙЖ
SQL> SPOOL STREET_POINT_THR.BQSV
SQL> SELECT * FROM STREET_POINTS;
ðÖðû
SQL> SPOOL OFF
सही कैरेक्टर सेट (UTF-8) के साथ टेक्स्ट एडिटर (मेरे मामले में jEdit) के साथ खोली गई फ़ाइल, वर्णों को सही ढंग से प्रदर्शित करती है।