2011-08-24 15 views
5

मैं लिनक्स मशीन पर यूनिकोड डेटा को स्पूल करने के लिए ओरेकल स्क्लप्लस (10.2) प्राप्त करने का प्रयास कर रहा हूं। मुझे इस मुद्दे की कई चर्चाएं मिली हैं, लेकिन स्थानीय सेटिंग्स की जांच करने के अलावा और NLS_LANG को AL32UTF8 पर सेट करने के अलावा कोई स्पष्ट उत्तर नहीं मिला है। सभी लोकेल जानकारी "en_US.UTF-8" पर सेट है, मैं अनुरोध पर पूरा आउटपुट पोस्ट करूंगा।यूनिकोड वर्णों को स्पूल करने के लिए SQLPlus प्राप्त करना, आउटपुट के रूप में हो रहा है?

ओएस (vi, आदि), बिना किसी मुद्दे के यूनिकोड वर्णों को पहचान और स्वीकार करेगा। हालांकि, sqlplus का उपयोग करते समय, सभी गैर-ASCII वर्ण बदल दिए जाते हैं? वर्ण। ओरेकल डीबी में NLS_CHARACTERSET AL32UTF8 पर सेट है, और NLS_NCHAR_CHARACTERSET AL16UTF16 पर सेट है।

क्या मुझे कुछ सेटिंग या स्विच याद आ रही है जिसे एसक्लप्लस के लिए सेट करने की आवश्यकता है? कोई भी उपाय बहुत प्रशंसनीय होगा।

उत्तर

11

मुझे इसका जवाब मिला। जाहिर है, खोल स्क्रिप्ट में NLS_LANG सेट करना (सही सेटिंग AMERICAS_AMERICA.AL32UTF8) काम नहीं करती है। यह निर्यात किया जाना चाहिए:

export NLS_LANG=AMERICAN_AMERICA.AL32UTF8 
+0

माना जाता है: निर्यात NLS_LANG = AMERICAN_AMERICA.AL32UTF8 –

+0

धन्यवाद! तदनुसार तय –

+1

मैं इस मुद्दे से दिनों के लिए पीड़ित था। यह विंडोज़ पर कमांड प्रॉम्प्ट और साइगविन शैल दोनों स्क्रिप में बहुत अच्छा काम करता है ... लेकिन लिनक्स पर ही नहीं। निर्यात करने के बाद यह सब काम किया :)। मेरे लिए यह गैर-भाषा विशिष्ट संस्करण में भी काम करता है: निर्यात NLS_LANG = .AL32UTF8 –

0

एक और तरीका है स्पूल स्क्रिप्ट के अंदर NLS_LANG बात है, एक छद्म सत्र बयान के रूप में:

alter session set NLS_LANG='AMERICAS_AMERICA.AL32UTF8' 

export NLS_LANG के बिना इस मूल्य सेट नहीं करता है sqlplus acces इस चर, केवल निर्यात के बाद यह पर्यावरण के लिए मिलता है और दूसरों के लिए उपलब्ध है।

+0

यह काम नहीं करता है। एसएलएलप्लस शुरू करने से पहले एनएलएस_एलएएनजी सेट करने की जरूरत है। – jramb

+0

धन्यवाद। स्थानीय विन्यास और संबंधित लिपियों की जांच करेगा, अब तक मेरे लिए काम किया है। –