Oracle 中 varchar2(N) 与 varchar2(N char) 的区别
varchar(N)中是可以存储N个字节,而varchar(N char)是可以存储N个字符
1、varchar2(N):可以存储N byte长度,与字符数无关;例如varchar2(3),可以存储3个byte长度,如'啊a'、'aaa',与字符数无关;
2、varchar2(N char):可以存储N个字符(包括字母和汉字),与字节(byte)长度无关;例如varchar2(3 char),可以存储3个字符(包括字母和汉字),如'啊啊啊'、'aaa'、'啊aa',与字节(byte)长度无关;
测试如下:
--创建测试表vctest1和vctest2 create table vctest1( c1 varchar2(10) );
create table vctest2( c1 varchar2(10 char) );
vctest1插入测试
insert into vctest1 values('AAAAAAAAAA');--插入成功 --一个汉字占用两个字节 insert into vctest1 values('测试测试测');--插入成功
--插入11个字符,错误如下图 insert into vctest1 values('AAAAAAAAAAA');
--插入6个汉字,错误如下图 insert into vctest1 values('测试测试测试');
vctest2插入测试
--分别插入10个字母或者10个汉字,插入成功 insert into vctest2 values('AAAAAAAAAA'); insert into vctest2 values('测试测试测试测试测试');
--插入11个字符或者11个汉字,均报以下错误 insert into vctest2 values('AAAAAAAAAAA'); insert into vctest2 values('测试测试测试测试测试测');
测试完成,删除测试表
drop table vctest1; drop table vctest2;
参考:
posted on 2020-09-23 14:19 jingkunliu 阅读(902) 评论(0) 编辑 收藏 举报