`
阅读更多
1. NLS_LANG 参数组成
NLS_LANG参数由以下部分组成:
NLS_LANG=<Language>_<Territory>.<Clients Characterset>
NLS_LANG各部分含义如下:
LANGUAGE指定:
-Oracle消息使用的语言
-日期中月份和日显示
TERRITORY指定
-货币和数字格式
-地区和计算星期及日期的习惯
CHARACTERSET:
-控制客户端应用程序使用的字符集
通常设置或者等于客户端(如Windows)代码页
或者对于unicode应用设置为UTF8
在Windows上查看当前系统的代码页可以使用chcp命令:
E:\>chcp
活动的代码页: 936
代码页936也就是中文字符集 GBK,在Microsoft的官方站点上,我们可以遭到关于936代码页的具体编码规则,请参考以下链接:
http://www.microsoft.com/globaldev/reference/dbcs/936.htm

2. 查看 NLS_LANG 的方法
Windows使用:
echo %NLS_LANG%
如:
E:\>echo %NLS_LANG%
AMERICAN_AMERICA.ZHS16GBK
Unix使用:
env|grep NLS_LANG
如:
/opt/oracle>env|grep NLS_LANG
NLS_LANG=AMERICAN_CHINA.ZHS16GBK
Windows客户端设置,可以在注册表中更改NLS_LANG,具体键值位于:
HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOMExx\
xx指存在多个ORACLE_HOME时系统编号。

3. 查看数据库当前字符集参数设置
SELECT * FROM v$nls_parameters;

4. 查看数据库可用字符集参数设置
SELECT * FROM v$nls_valid_values;

5. 客户端 NLS_LANG 的设置方法
Windows:
# 常用中文字符集
set NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK
# 常用unicode字符集
set NLS_LANG=american_america.AL32UTF8
可以通过修改注册表键值永久设置
HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOMExx\NLS_LANG
Unix:
# 常用unicode字符集
export NLS_LANG=american_america.AL32UTF8
# 常用中文字符集
export
可以编辑 bash_profile 文件进行永久设置
vi .bash_profile
export NLS_LANG="SIMPLIFIED CHINESE_CHINA.ZHS16GBK"
or export NLS_LANG="Simplified Chinese_china".ZHS16GBK
# 使 bash_profile 设置生效
source .bash_profile
=================================================================================

[Q]怎么样查看数据库字符集  
[A]数据库服务器字符集select * from nls_database_parameters,其来源于props$,是表示数据库的字符集。

客户端字符集环境select * from nls_instance_parameters,其来源于v$parameter,

表示客户端的字符集的设置,可能是参数文件,环境变量或者是注册表

会话字符集环境 select * from nls_session_parameters,其来源于v$nls_parameters,表示会话自己的设置,可能是会话的环境变量或者是alter session完成,如果会话没有特殊的设置,将与nls_instance_parameters一致。

客户端的字符集要求与服务器一致,才能正确显示数据库的非Ascii字符。如果多个设置存在的时候,alter session>环境变量>注册表>参数文件

字符集要求一致,但是语言设置却可以不同,语言设置建议用英文。如字符集是zhs16gbk,则nls_lang可以是American_America.zhs16gbk。

[Q]怎么样修改字符集

[A]8i以上版本可以通过alter database来修改字符集,但也只限于子集到超集,不建议修改props$表,将可能导致严重错误。

Startup nomount;
Alter database mount exclusive;
Alter system enable restricted session;
Alter system set job_queue_processes=0;
Alter database open;
Alter database character set zhs16gbk;

分享到:
评论

相关推荐

    NLS_LANG切换字符集快捷工具.bat

    快速通过NLS_LANG切换字符集快捷工具设置客户端字符集,避免连接多个不同字符集的数据库导致PL/SQL工具显示乱码的问题。

    NLS_LANG修改环境变量工具

    window下修改NLS_LANG环境变量快捷工具,此工具利用bat写的,可以看见源码,提供给大家参考

    oracle10g(nls_charset12.jar)以及oracle11g (orai18n.jar)

    oracle10g jdbc的一个包 nls_charset12.jar。 oracle11g jdbc的一个包 orai18n.jar

    Oracle客户端 NLS_LANG 的设置方法

    Oracle客户端 NLS_LANG 的设置方法,如果服务器端与客户端不一样会提示错误,windows下通过注册表下可以解决

    使用多个Oracle Home时的nls_lang

    使用多个Oracle主目录时为nls_lang

    创建Oracle用户

    rem set NLS_LANG=american_america.AL32UTF8 imp ECACS/MIS5@PMORA file=E:\BACKUP\ORACLE\192.168.0.200_ECABLSY131114.DMP full=y buffer=99999999 statistics=none pause

    PB连ORACLE10免客户端

    我已经通过了PB12.5连ORACLE10的免客户端设定。详细内容请看里面的 《PB连ORACLE10免客户端》

    PB 连接oracle数据库

    PB程序连接oracle数据库,不用配置本地oracle服务

    PB如何连接Oracle数据库

    PowerBuilder如何连接Oracle数据库。

    toad使用技巧说明

    2、解决Toad对中文显示乱码问题(如果数据库所在主机的NLS_LANG是AMERICAN_AMERICA.WE8ISO8859P1): 系统环境变量加 NLS_LANG=AMERICAN_AMERICA.WE8ISO8859P1 3、toad中自动提示功能,就像plsql developer那样: 输入...

    plsqldev 11.0.6.1796 64位中文绿色破解版

    用select userenv('language') nls_lang from dual; 查询出Oracle的编码,例如:SIMPLIFIED CHINESE_CHINA.ZHS16GBK 右击"我的电脑" - "属性" - "高级" - "环境变量" - "系统环境变量": 点击"新建", 变量名设置为...

    Oracle_instantclient_11g客户端

    Oracle_instantclient_11_2,无需安装,解压即可使用。...添加NLS_LANG的具体内容是:【SIMPLIFIED CHINESE_CHINA.ZHS16GBK】,添加完成后,如果是WIN7或者VISTA系统时,需要先用“管理员权限”运行下PLSQL程序即可。

    oracle 11G 免安装客户端精简版

    NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK 或 NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16CGB231280 TNS_ADMIN="D:\oracle_client\instantclient10_1 也可以通过reg文件设置环境变量,建立oracle_client.reg,内容...

    Oracle_instant_client_10_2

    系统变量:新建 变量名:NLS_LANG 变量:NLS_LANG=AMERICAN_AMERICA.ZHS16GBK 新建 变量名:TNS_ADMIN 变量值:C:\Oracle_instant_client_10_2 path变量后边增加 C:\Oracle_instant_client_10_2; 2、在oracle安装路径...

    instantclient-basic-nt-12.1.0.1.0_Installer.exe

    basic-nt-12.1.0.1.0.zip(下载次数2120次),通过Setup Factory对该oracle客户端程序进行打包,生成32位windows系统的.exe安装包,并通过脚本自动修改系统环境变量PATH,添加系统环境变量NLS_LANG,避免用户手动...

    oracle详解

     如何使exp的帮助以不同的字符集显示:set nls_lang=simplified chinese_china.zhs16gbk,通过设置环境变量,可以让exp的帮助以中文显示,如果set nls_lang=American_america.字符集,那么帮助就是英文的了 程序...

    免安装客户端PL.SQL连接

    如果之前安装了Oracle 又卸载,会遗留NLS_LANG=NA的键值. 输入RegEdit打开注册表HKEY_LOCAL_MACHINE/SOFTWARE/ORACLE.在右面找到NLS_LANG=NA并删除掉 否则会报ORA-12705: Cannot access NLS data files or invalid...

Global site tag (gtag.js) - Google Analytics