ITPub博客

首页 > 数据库 > Oracle > 环境变量对SQLPLUS字符的影响

环境变量对SQLPLUS字符的影响

原创 Oracle 作者:michaelr 时间:2010-03-12 19:56:11 0 删除 编辑

DOS窗口的属性:

Current code page 950 Traditional Chinese Big5

936 Simplified Chinese GBK

此处设置只对dos窗口中的数据显示正确与否有关,对于输出文件字符正确与否无关。

可以通过Control Panel->Regional and language options->Advanced->Language for non-Unicode programs选择更改。

那么命令行的SET NLS_LANG,注册表里的NLS_LANG设置,与系统环境变量NLS_LANG的设置哪个启作用呢?

测试比较下来,优先次序是:

[@more@]

DOS窗口的属性:

Current code page 950 Traditional Chinese Big5

936 Simplified Chinese GBK

此处设置只对dos窗口中的数据显示正确与否有关,对于输出文件字符正确与否无关。

可以通过Control Panel->Regional and language options->Advanced->Language for non-Unicode programs选择更改。

那么命令行的SET NLS_LANG,注册表里的NLS_LANG设置,与系统环境变量NLS_LANG的设置哪个启作用呢?

测试比较下来,优先次序是:

DOS窗口中set NLS_LANG=Simplified Chinese_China.ZHS16GBK

> 系统环境变量 NLS_LANG=Traditional Chinese_TAIWAN.ZHT16BIG5

> 注册表NLS_LANG=American_America.AL32UFT8

另外通过SQLPLUS中途, SQL>$ set NLS_LANG= FRENCH_CANADA.WE8ISO8859P1 是无法改变当前session的NLS_LANG设置的。

没有通过环境变量设置NLS_LANG,那也要看注册表里的设置了。注册表的NLS_LANG设置在多个ORACLE_HOME是也要注意哪个是当前的HOME,这时环境变量里设置的ORACLE_HOME不起作用,而要看注册表里ALL_HOMES下的DEFAULT_HOME的指定。如这里DEFAULT_HOME是OraDB10_home1,而此HOME下的NLS_LANG的设置为French_Canada.ZHS16GBK,那dos中的介面语言也会变成法语:

法语登录介面:

Language_Territory.Charset中,以上种种语言,地区的设置都是对介面语言的选择有影响,但对于客户端导出文本时charset字符集才是关键。现在服务器端字符集是AL32UTF8,用SPO导出数据的SQLPLUS可以设置为ZHS16GBK或者ZHS16CGB231280中文都不会有问题。虽然AL32UTF8并不是ZHS16GBK, ZHS16CGB231280的超集,中文自动转换了。

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/1513/viewspace-1031796/ ,如需转载,请注明出处,否则将追究法律责任。

下一篇: 什么是Unicode?
请登录后发表评论 登录
全部评论
  • 博文量
    12
  • 访问量
    40316