oracle – 如何检查客户端的NLS_LANG?
发布时间:2020-12-12 13:50:09 所属栏目:百科 来源:网络整理
导读:我正在使用Windows操作系统,我知道此设置存储在注册表中.问题是注册表路径从版本更改为版本,浏览虽然这一堆注册表项肯定不是一个好主意. 我可以使用SELECT USERENV(‘language’)FROM DUAL获取服务器的NLS_LANG. 我想将它与客户端设置进行比较,并在它们不匹
我正在使用Windows操作系统,我知道此设置存储在注册表中.问题是注册表路径从版本更改为版本,浏览虽然这一堆注册表项肯定不是一个好主意.
我可以使用SELECT USERENV(‘language’)FROM DUAL获取服务器的NLS_LANG. 我想将它与客户端设置进行比较,并在它们不匹配时显示警告,就像Pl / Sql Developer一样. 这是我在解决编码问题时所做的事情. (sqlplus读取的NLS_LANG值):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值. ORACLE_HOME和注册表部分: C:&;dir /s/b oracle.key C:Oracle10BINoracle.key C:&;type C:Oracle10BINoracle.key SOFTWAREORACLEKEY_OraClient10204_Home 在这些时候,我转向IPython来展示一个想法: 几个查找,你就在那里! In [36]: OHOMES_INSTALLED = !where oci.dll In [37]: OHOMES_INSTALLED Out[37]: ['C:Oracle10BINoci.dll','C:oraclexeapporacleproduct11.2.0serverbinoci.dll'] In [38]: ORACLE_HOME = os.path.dirname(OHOMES_INSTALLED[0]) In [39]: ORACLE_HOME Out[39]: 'C:Oracle10BIN' In [40]: f = open(os.path.join(ORACLE_HOME,"oracle.key")) In [41]: SECTION = f.read() In [42]: SECTION Out[42]: 'SOFTWAREORACLEKEY_OraClient10204_Homen' 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) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |