1、字符集的作用和含义:Oracle字符集是一个字节数据解释的符号集合,有大小之分,有相互的包容关系。
Oracle支持国家语言的体系结构允许你使用本地化语言来存储,处理,检索数据。它使数据库工具,错误消息,排序次序,
期,时间,货币,数字和日历自动适应本地化语言和平台。
数据库字符集
(1)用来存储CHAR, VARCHAR2, CLOB, LONG等类型数据
(2)用来标示诸如表名、列名以及PL/SQL变量等
(3)用来存储SQL和PL/SQL程序单元等
国家字符集
(1)用以存储NCHAR, NVARCHAR2, NCLOB等类型数据
2、客户端OS字符集、NLS_LANG设置、服务器端OS字符集、Oracle数据库字符集
字符集之间的关系
正确设置字符集
3、字符集出现问题以后的判断流程
存储的是错误的字符编码
存储的是正确的字符编码
4、locale、locale -a、chcp
5、字符集命名
Oracle的字符集命名遵循以下命名规则:
<Language><bit size><encoding>
即: <语言><比特位数><编码>
比如: ZHS16GBK表示采用GBK编码格式、16位(两个字节)简体中文字符集
NLS_LANG=<language>_<territory>.<client character set>
Language:显示oracle消息,校验,日期命名
Territory:指定默认日期、数字、货币等格式
Client character set:指定客户端将使用的字符集
例如:NLS_LANG=AMERICAN_AMERICA.US7ASCII
AMERICAN是语言,AMERICA是地区,US7ASCII是客户端字符集
Oracle提供若干NLS参数定制数据库和用户机以适应本地格式,例如有NLS_LANGUAGE,NLS_DATE_FORMAT,NLS_CALENDER等,可以通过查询以下数据字典或v$视图查看。
NLS_DATABASE_PARAMETERS--显示数据库当前NLS参数取值,包括数据库字符集取值
NLS_SESSION_PARAMETERS--显示由NLS_LANG 设置的参数,或经过alter session 改变后的参数值(不包括由NLS_LANG 设置的客户端字符集)
NLS_INSTANCE_PARAMETE--显示由参数文件init<SID>.ora 定义的参数V$NLS_PARAMETERS--显示数据库当前NLS参数取值
查看字符集相关命令:
select * from nls_session_parameters
select * from nls_database_parameters
select userenv('language') from dual;
select nls_charset_name(to_number('0354','xxxx')) from dual;
echo $NLS_LANG
select to_char(nls_charset_id('ZHS16GBK'), 'xxxx') from dual;
wx
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/30109892/viewspace-2073240/
,如需转载,请注明出处,否则将追究法律责任。