oracle linguistic,oracle NLS_Language

中文系统上用oracle真的很麻烦,尤其像我们这种:操作系统是英文的,区域设成中文,估计oracle也给搞晕了。

安装完数据库发现instance 的nls_language是中文,如下图

a4c26d1e5885305701be709a3d33442f.png

而database的nls_language的设置是英文,如下图:

a4c26d1e5885305701be709a3d33442f.png

使用下面的语句将instance的nls_language设置也改成英文

alter system set nls_language = 'AMERICAN' scope =

spfile;

alter system set nls_territory = 'AMERICA' scope = spfile;

改完后需要重新启动数据库才生效,或者没准log out再log in就可以了?

修改之后instance的nls_language也改成英文了。

接下来的问题是关于instance

client的,通常安装oracle的客户端会在注册表里创建一些key,其中包括nls_language一项,但是instance

client没有,那它从哪里读nls_language的设置呢?通过我的实验发现只和数据库端的设置有关。

之前用instance的sqlplus连接数据库有乱码,忘了截图了,执行完alter

system命令后,显示正常,如下图

a4c26d1e5885305701be709a3d33442f.png

同一台机器上oracle home下的sqlplus连接数据库后有乱码(因为当前系统的language for

non-unicode设置的为英文,所以中文无法正常显示),如下图

a4c26d1e5885305701be709a3d33442f.png

检查oracle home的注册表,发现nls_language设为中文

a4c26d1e5885305701be709a3d33442f.png

所以说oracle instance

client的语言会使用instance的设置,而oracle可安装的客户端的语言需要通过注册表设置。

如果想把注册表的nls_lang改为英文可以将其设为:AMERICAN_AMERICA.WE8MSWIN1252

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值