很多人都会遇到中文显示字符集的问题,很是闹心
oracle字符集涉及三方面
1.oracel server端的字符集;
2.是oracle client端的字符集;
3.是dmp文件的字符集。
1、查询oracle server端的字符集
select userenv(‘language’) from dual;
SQL> select userenv('language') from dual;
USERENV('LANGUAGE')
----------------------------------------------------
AMERICAN_CHINA.ZHS16GBK
2、客户端
在windows平台下,就是注册表里面相应OracleHome的NLS_LANG。还可以在dos窗口里面自己设置,比如: set nls_lang=AMERICAN_AMERICA.ZHS16GBK 这样就只影响这个窗口里面的环境变量。
在unix平台下,就是环境变量NLS_LANG。
vim /home/oracle/.bash_porfile
添加
export NLS_LANG="AMERICAN_CHINA.ZHS16GBK"
$echo $NLS_LANG
AMERICAN_AMERICA.ZHS16GBK
如果检查的结果发现server端与client端字符集不一致,统一修改为同server端相同的字符集。
3、查看导出的dmp字符格式
SQL> select nls_charset_name(to_number('0354','xxxx')) from dual;
ZHS16GBK
oracle字符集涉及三方面
1.oracel server端的字符集;
2.是oracle client端的字符集;
3.是dmp文件的字符集。
1、查询oracle server端的字符集
select userenv(‘language’) from dual;
SQL> select userenv('language') from dual;
USERENV('LANGUAGE')
----------------------------------------------------
AMERICAN_CHINA.ZHS16GBK
2、客户端
在windows平台下,就是注册表里面相应OracleHome的NLS_LANG。还可以在dos窗口里面自己设置,比如: set nls_lang=AMERICAN_AMERICA.ZHS16GBK 这样就只影响这个窗口里面的环境变量。
在unix平台下,就是环境变量NLS_LANG。
vim /home/oracle/.bash_porfile
添加
export NLS_LANG="AMERICAN_CHINA.ZHS16GBK"
$echo $NLS_LANG
AMERICAN_AMERICA.ZHS16GBK
如果检查的结果发现server端与client端字符集不一致,统一修改为同server端相同的字符集。
3、查看导出的dmp字符格式
SQL> select nls_charset_name(to_number('0354','xxxx')) from dual;
ZHS16GBK
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/26909803/viewspace-1971617/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/26909803/viewspace-1971617/