关于oracle字符集的说明

查看数据库字符集
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,已经错乱的字符一旦添加到数据库中,即使再恢复成一致的字符集,依然无法正确显示乱码。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值