如何修改客户端字符集NLS_LANG

如何修改客户端字符集NLS_LANG,第1张

如简体系统为:ZHS16GBK,繁体系统为:MSWIN950。可见,Oracle Client(以下简称NLS_LANG)在安装过程中选择了OS的字符集作为默认的NLS_LANG字符集。设定NLS_LANG有三种方法: a) 修改注册表:将HKLOCAL_MACHINE\SOFTWARE\ORACLE\KEY_ORACLECLENT_HOME1\下NLS_LANG键值改为你要设定的字符集,如将SIMPLIFIED CHINESE_CHINA.ZHS16GBK改为:SIMPLIFIED CHINESE_CHINA.AL32UTF8。这种做法如果无燃枯效,即使重新启动机器后,也没有生效,NLS_LANG仍使用当初安装时的OS字符集,就试用第个方法。 b) 设定迹旅环境变量:在My Computer->Properties->Advanced->Environment Variables->System Variables 新增环境变量设置,如:Variable name=NLS_LANG,Variable Value= SIMPLIFIED CHINESE_CHINA.AL32UTF8。这样NLS_LANG字符集为UTF8,这个NLS_LANG优先序高于注册表中的NLS。注意:环境变量设在系统变量中(System Vairables),而不是用户变量(User Vairables)。 c) 在姿段凳应用程序运行的Process Session中设定:在程序运行之前,先通过set NLS_LANG=进程Session的字符集。例如:Echo %nls_lang%,在这个session中,已经设定NLS_LANG字符集为ZHS16GBK。同样,你也可以新开一个CMD窗口,设定另一种NLS_LANG字符集。这种在session中设定NLS_LANG的优先序高于系统环境变量NLS_LANG。

数据库字符集在创建后原则上不能更改。如果需要修改字符集,通常需升拿要导出数据库数据,重建数据库,再导入数据库数据的方式来转换。

楼主只是改前两部分,是不是想提示的时候是中文?如果这样,你只需要更改客户端的字符集即可,不用改服务器端,如不知道客户端怎么更改皮笑前,请追问。

NLS_LANG = language_territory.charset

Language: 指定服务器消息的语言, 影响提示信息是中文还是英文

Territory: 指定服务器的日期和数字格式,

如:AMERICAN _ AMERICA. ZHS16GBK

从NLS_LANG的组成我们可以看出,真正影响数据库字符集的燃清其实是第三部分。

所以两个数据库之间的字符集只要第三部分一样就可以相互导入导出数据,前面影响的只是提示信息是中文还是英文。

一、pl/sql developer 中文字段显示乱码

原尺兆春因:因为数据库的编号格式和pl /sql developer的编码陵耐格式不统一造成的。

二、查看和修改oracle数据库字符集:

select userenv('language') from dual

查询结果:

SIMPLIFIED CHINESE_CHINA.AL32UTF8

--修改oracle数据库字符集:(在SQL Plus中)

sql>conn / as sysdba

sql>shutdown immediate

database closed.

database dismounted.

oracle instance shut down.

sql>startup mount

oracle instance started.

total system global area 135337420 bytes

fixed size 452044 bytes

variable size 109051904 bytes

database buffers 25165824 bytes

redo buffers 667648 bytes

database mounted.

sql>alter system enable restricted session

system altered.

sql>alter system set job_queue_processes=0

system altered.

sql>alter system set aq_tm_processes=0

system altered.

sql>alter database open

database altered.

sql>alter database character set internal_use JA16SJIS

sql>shutdown immediate

sql>startup

三、修改pl/sql developer 的编码格式:

在windows中创 建一个名为“NLS_LANG”的系统环境变猜乎量,设置其值为“SIMPLIFIED CHINESE_CHINA.ZHS16GBK”,

然后重新启动 pl/sql developer,这样检索出来的中文内容就不会是乱码了。如果想转换为UTF8字符集,可以赋予“NLS_LANG”为 “AMERICAN_AMERICA.UTF8”,然后重新启动 pl/sql developer。其它字符集设置同上。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/12410241.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存