आपको दो अलग-अलग nls सेटिंग्स में अंतर करना होगा
-
बाहरी एक - आपके आवेदन में पर्यावरण चर NLS_LANG द्वारा परिभाषित। जब आप OCI क्लाइंट लाइब्रेरी को डेटा भेजते हैं तो यह आपके आंतरिक स्ट्रिंग प्रतिनिधित्व को निर्धारित करता है।
-
आंतरिक एक। यह आपके डेटा को डिस्क पर संग्रहीत करने के लिए Oracle द्वारा उपयोग किया जाने वाला वर्ण सेट है।
निष्पादित करने का प्रयास करें
select r.module, t.*
from v$sesssion_connection_info t
join v$session r on (r.sid = t.sid and t.serial# = r.serial#)
where r.sid = <your ruby connection SID>;
select * from nls_database_parameters;
select * from nls_instance_parameters;
यदि यह दिखाता है, कि आप US7ASCII या ISO8859P1 जैसी किसी चीज़ का उपयोग कर रहे हैं, तो Oracle आपके चरित्र को स्वीकार करता है और इसे लक्ष्य वर्ण सेट में परिवर्तित करता है (या तो एक उच्चारण को हटाकर या '?' से बदलकर)।