解决ORA-12705无法访问NLS问题


通过putty sql_plus 连接数据库报错:
ORA-12705:Cannot access NLS data files or invalid environment specified

此问题主要是putty登录后的系统linux/windows当前环境变量NLS_LANG设置和数据库NLS_LANG参数变量不一致导致.
NLS_LANG参数由以下部分组成:
NLS_LANG=[Language]_[Territory].[Clients Characterset]NLS_Language 免费云主机域名指定:NLS_Territory 指定:客户端字符集(CLIENTS CHARACTERSET):1.首先查询数据库的语言字符集环境变量;注意:如上查询只能查询出数据库当前session的语言字符集,2.在putty linux 中查询当前的环境变量NLS_LANG是否和数据库语言字符集保持一致.env | grep NLS_LANG3.不一致则使用export 命令设置linux环境变量NLS_LANG的值
linux例如:export NLS_LANG=AMERICAN_AMERICA.AL32UTF8如果要永久更新此变量需要在.bash_profile文件中设置或添加的NLS_LANG
例如:vi ~/.bash_profile注:远程机器如果为windows;
windows设置NLS_LANG有三种方式
1.cmd命令如下:
set nls_lang=AMERICAN_AMERICA.AL32UTF82..注册表设置(永久生效)
默认情况下,windows上的Oracle安装使用注册表来定义这个设置。
版本 10g 及以上:
HKEY_LOCALMACHINESOFTWAREORACLEKEY
这里您会看到一个条目名为NLS_LANG
在64位windows平台上安装32位软件,会使用32位兼容性路径
HKEY_LOCALMACHINESOFTWAREWow6432NodeORACLEKEY3..操作系统环境变量
尽管注册表是Microsoft Windows设置的主要存储位置,它不是唯一可以设置参数的地方。
虽然不推荐,但您可以设置NLS_LANG为系统属性中的系统或者用户变量。这个设置会被所有Oracle home使用。
设置位置: ‘我的电脑’ -> ‘属性’ > ‘高级’ -> ‘环境变量’

相关推荐: 【赵强老师】Oracle数据库的存储结构

数据文件(data file)一个数据库可以由多个数据文件组成的,数据文件是真正存放数据库数据的。一个数据文件就是一个操作系统文件。数据库的对象(表和索引)物理上是被存放在数据文件中的。当我们要查询一个表的数据的时候,如果该表的数据没有在内存中,那么oracl…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 01/03 11:22
下一篇 01/03 11:25