环境变量对SQLPLUS字符的影响

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博客 ” ,链接:http://blog.itpub.net/1513/viewspace-1031796/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/1513/viewspace-1031796/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值