Oracle
 sql >> डेटाबेस >  >> RDS >> Oracle

मैं क्लाइंट के NLS_LANG की जांच कैसे करूं?

जब मैं एन्कोडिंग-समस्याओं का निवारण करता हूं तो मैं यही करता हूं। (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)


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. जांचें कि क्या दो चयन समकक्ष हैं

  2. oracle NCHAR या NVARCHAR कॉलम में राष्ट्रीय वर्ण डालने से काम नहीं चलता

  3. OracleDataSource बनाम Oracle UCP PoolDataSource

  4. Oracle Sql डेवलपर स्ट्रिंग शाब्दिक बहुत लंबी त्रुटि

  5. Oracle SQL में द्वारा कनेक्ट करें