मैं एन्कोडिंग-समस्याओं का निवारण करते समय ऐसा करता हूं। (NLS_LANG मूल्य sqlplus द्वारा पढ़ा):
SQL>/* It's a hack. I don't know why it works. But it does!*/
SQL>@[%NLS_LANG%]
SP2-0310: unable to open file "[NORWEGIAN_NORWAY.WE8MSWIN1252]"
आप रजिस्ट्री से वर्तमान ORACLE_HOME में NLS_LANG मान प्राप्त करना होगा। सभी क्लाइंट-साइड टूल्स (sqlplus, sqlldr, exp, imp, oci, आदि ...) रजिस्ट्री से यह मान पढ़ें और यह निर्धारित करें कि कोई वर्ण ट्रांसकोडिंग होना चाहिए या नहीं।
ORACLE_HOME और रजिस्ट्री अनुभाग:
लुकअप के एक जोड़े को और आप देखते हैं:
C:\>dir /s/b oracle.key
C:\Oracle10\BIN\oracle.key
C:\>type C:\Oracle10\BIN\oracle.key
SOFTWARE\ORACLE\KEY_OraClient10204_Home
इन मैं IPython की ओर रुख की तरह समय में एक विचार प्रदर्शित करने के लिए!
In [36]: OHOMES_INSTALLED = !where oci.dll
In [37]: OHOMES_INSTALLED
Out[37]:
['C:\\Oracle10\\BIN\\oci.dll',
'C:\\oraclexe\\app\\oracle\\product\\11.2.0\\server\\bin\\oci.dll']
In [38]: ORACLE_HOME = os.path.dirname(OHOMES_INSTALLED[0])
In [39]: ORACLE_HOME
Out[39]: 'C:\\Oracle10\\BIN'
In [40]: f = open(os.path.join(ORACLE_HOME, "oracle.key"))
In [41]: SECTION = f.read()
In [42]: SECTION
Out[42]: 'SOFTWARE\\ORACLE\\KEY_OraClient10204_Home\n'
In [43]: from _winreg import *
In [44]: aReg = ConnectRegistry(None,HKEY_LOCAL_MACHINE)
In [46]: aKey = OpenKey(aReg,SECTION.strip())
In [47]: val = QueryValueEx(aKey, "NLS_LANG")
In [48]: print val
(u'NORWEGIAN_NORWAY.WE8MSWIN1252', 1)
स्रोत
2012-07-17 18:50:22
क्या आपने एनएलएस_SESSION_PARAMETERS, NLS_DATABASE_PARAMETERS, और NLS_INSTANCE_PARAMETERS को देखा है? http://docs.oracle.com/cd/E11882_01/server.112/e25513.pdf – Glenn
ठीक है, वे मुझे सब कुछ देते हैं ... क्लाइंट के NLS_LANG को छोड़कर –
क्या सत्र दृश्य आपको जो भी ढूंढ रहा है उसे नहीं देता है? nls_session_parameters से चुनें * पैरामीटर = 'NLS_LANGUAGE'; सत्र सेट nls_language = जर्मन बदलें; nls_session_parameters से चुनें * पैरामीटर = 'NLS_LANGUAGE'; – Glenn