全球化支持

ASCII字符集 7bit
ISO-8859-1  8bit (ASCII字符集的超集,多了对德语法语支持)
GBK:GB2312的扩展,2个字节表示一个汉字
Unicode:UTF8、UCS-2、UTF16
UTF-8: 3个字节表示一个汉字
UTF-8是UNICODE的一种变长字符编码又称万国码
UCS-2是固定2个字节长度编码
UTF16是UCS-2的扩展,可以是4个字节

创建数据库时指定字符集后,一般不修改

查询字符集
select * from nls_database_parameters;

主字符集:
NLS_CHARACTERSET

辅助字符集national character set:
NLS_NCHAR_CHARACTERSET

字符集不影响二进制格式存储的:音频、视频

创建数据时
create table t(name varchar2(10));
10是指character长度还是BYTE长度由参数
nls_length_semantics决定

当然还可以显示指定
create table t(name varchar2(10 byte));

create table t(name varchar2(10 char));


字符集转换
存储数据到数据库时,数据库的字符集必须是客户端字符集的超集,否则会导致数据丢失;
数据库底层进行字符集转换;
客户端程序的字符集要与客户端操作系统的字符集要一致,防止乱码

cmd>chcp 显示活动代码页编号,936为中文简体
总NLS参数(只能通过设置环境变量指定,只对sqlplus应用程序有效)
NLS_LANG=French_France.UTF8
French是语言
France是地区
UTF为字符集
在LINUX下设置 export NLS_LANG=French_France.UTF8
在window下设置 打开cmd 输入 set nls_lang=Chinese_China.UTF8
或者在注册表HKEY_LOCAL_MACHINE/SOFTWARE/ORACLE/KEY_OraDb11g_home1中的NLS_LANG

每个用户或同一用户不同地方登录都有不同的NLS参数
select * from nls_session_parameters;
主要的参数NLS_LANGUAGE和NLS_TERRITORY

字符集优先级从高到低
SQL语句: TO_CHAR
alter session
设置环境变量
初始化参数
默认

3种排序类型
Binary sorting 二进制排序
Monolingual sorting 单一语言排序
Multilingual sorting 多语言排序

排序方法nlssort函数(其实就是把原来的二进制用另外一种方式重新排序再生成新的二进制)
select * from t order by nlssort(name,'NLS_SORT=SCHINESE_PINYIN_M');name字段按汉语拼音排序
select * from t order by nlssort(name,'NLS_SORT=SCHINESE_STROKE_M');按汉语笔画排序
排序的方式可查询v$nls_valid_values
select * from v$nls_valid_values where parameter='SORT'
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值