Oracle服务器数据库中文乱码之字符集修改 |
| 发布时间: 2012/8/24 17:13:37 |
|
最近安装个Oracle 10g数据库,dbca建库的时候没选字符集或者选错的情况,导入数据后,中文全部是乱码(搞笑的是,中文乱码 居然全部是个“靠”字),查看网络几篇文章,也做了相应修改(以前按方法修改可以解决的,今天特例!),解决办法如下: SQL> select name,value$ from props$ where name like '%NLS%';---语句查询当前数据库服务器字符集 NAME NLS_TERRITORY NLS_CURRENCY
NLS_NUMERIC_CHARACTERS NLS_CHARACTERSET ----找到查出来的结果中的该项参数
下面是修改过程: SQL> shutdown immediate; ---停止数据库 SQL> startup mount ---启动数据库到mount状态 Total System Global Area 235999352 bytes ---下面是修改过程,按步骤修改 Session altered. 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> set linesize 120; SQL> ALTER DATABASE character set INTERNAL_USE zhs16gbk; # 使用INTERNAL_USE可以跳过超集的检查, (ALTER DATABASE character set INTERNAL_USE ) Database altered. ---启动数据库 Total System Global Area 235999352 bytes
----再次查看当前字符集 SQL> select name,value$ from props$ where name like '%NLS%'; NAME NLS_TERRITORY NLS_CURRENCY
NLS_NUMERIC_CHARACTERS NLS_CHARACTERSET 今天的情况特殊,修改完了,中文乱码还是“靠”字,- - 后来试着修改系统字符集 在Oracle下 .bash_profile 文件里面加入 export NLS_LANG="Simplified Chinese_CHINA.ZHS16GBK" 最后把NLS_LANG中后面的字符集ZHS16GBK修改成AL32UTF8,查看结果,搞掂完成,回家! 总结:要系统字符集和数据库字符集相对应才会解决中文乱码问题,dbca建库时,也要注意字符集选择问题。
本文出自:亿恩科技【www.enkj.com】 |
京公网安备41019702002023号