您的位置:首页 > 数据库 > Oracle

关于oracle字符集的说明

2014-02-07 11:27 225 查看
查看数据库字符集

SQL> select * from nls_database_parameters where parameter like '%CHARACTERSET%';

PARAMETER VALUE

------------------------- ------------------------------

NLS_CHARACTERSET ZHS16GBK

NLS_NCHAR_CHARACTERSET AL16UTF16

SQL> select * from nls_database_parameters;

查看用户环境字符集

SQL> select userenv('language') from dual;

USERENV('LANGUAGE')

----------------------------------------------------

AMERICAN_AMERICA.ZHS16GBK

查看客户端字符集

SQL> select * from nls_instance_parameters;

查看会话字符集

SQL> select * from nls_session_parameters;

SQL> select * from v$nls_parameters;

设置客户端字符集

Windows:

set NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK

set NLS_LANG=American_America.AL32UTF8

Linux/Unix:

export NLS_LANG='SIMPLIFIED CHINESE_CHINA.ZHS16GBK'

export NLS_LANG=American_America.AL32UTF8

正常显示:

操作系统——ZHS16GBK

SQLPLUS——ZHS16GBK

数据库——ZHS16GBK

操作系统——AL32UTF8

SQLPLUS——AL32UTF8

数据库——AL32UTF8

乱码显示:

操作系统——ZHS16GBK

SQLPLUS——AL32UTF8

数据库——ZHS16GBK

操作系统——AL32UTF8

SQLPLUS——ZHS16GBK

数据库——AL32UTF8

总结:避免乱码,要保证客户端(SQLPLUS)字符集与数据库字符集一致,但语言可以不一致。设置完需重新登录session,已经错乱的字符一旦添加到数据库中,即使再恢复成一致的字符集,依然无法正确显示乱码。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: