您的位置:首页 > 其它

ORA-12705: Cannot access NLS data files or invalid environment specified 错误

2017-10-25 11:18 639 查看
   因为版本原因,PB9 启动要配合oracle9i的客户端。由于已经装了11g客户端,所以我把它卸载后装了一个9i免安装客户端。接下去问题就来了,足足搞了我一个小时才完成,下面我把我遇到的问题黏贴出来,希望可以帮到走足够弯路的大伙们。

   安装好9i后,打算启动plsql去连接:ORA-12705:Cannot access NLS data files or invalid environment specified。奇怪了,我去尝试sqlplus命令连接看:

 


    果然还是报错,网上找的方法:

    如果是Windows平台,注册表里 \HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE 查找键 NLS_LANG,这个键由Oracle标准客户端安装创建, 值是 NA 。这个导致了 ORA-12705错误。解决方法就是修改NA为SIMPLIFIED CHINESE_CHINA.ZHS16GBK。

 Linux下 如果环境变量 NLS_LANG 值是NA 会引起 ORA-12705 错误,解决方法是修改set NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK。

  发现我的注册文件中的值本来就是SIMPLIFIED CHINESE_CHINA.ZHS16GBK。

   那就算了 我把9i客户端删除,重装11g。费了老半天还是这个错,这下有点难办了,转了一圈还是回到了原点。

   不怕,继续摸索。

   突然灵光一来,会不会是注册表中有多个NLS_LANG,导致客户端不知道取哪个值呢?就像是没彻底删除干净,

   windows+R

   regedit;

   查找NLS_LANG 再查找下一个





果然是这样 9i对应的NLS_LANG的值为NA,删除oracle9i客户端的时候没有彻底删除干净,导致注册表中存在多个NLS_LANG。

OK 搞定。 当然,删除11g客户端的时候也会这样,要么在注册表中手动删除9i客户端的所有注册,要么删除11g的所有。

   接下去又来了一个奇葩的问题:不管在sqlplus还是plsql查询时,中文显示乱码。

   方法:1,环境变量中加入NLS_LANG  值为SIMPLIFIED CHINESE_CHINA.ZHS16GBK



2.cmd下 执行set NLS_LANG=AMERICAN_AMERICA.ZHS16GBK

然后用sqlplus进入

  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐