一.参数介绍
1.LENGTH_IN_CHAR 参数
参数说明:
VARCHAR 类型对象的长度是否以字符为单位。取值:1、Y 表示是,0、N 表示
否。默认值为 0。可选参数。是初始化参数,一旦设置将不能修改。
2.CHARSET 参数
参数说明:
字符集选项。取值:0 代表 GB18030,1 代表 UTF-8,2 代表韩文字符集 EUC-
KR。默认为 0。可选参数。是初始化参数,一旦设置将不能修改。
二.参数测试
A.初始化一个实例:
LENGTH_IN_CHAR=0,CAHRSET=0,即:使用 GB18030 字符集,字符以字节为单位
select * from v$parameter where name= 'LENGTH_IN_CHAR';

select * from v$parameter where name like '%CHARSET%';
1. 创建一张测试表
create table test(name varchar(10));
2. 插入数据
insert into test values('qwertyuiop');
insert into test values('ABCDEFGHIJ');
insert into test values ('abcdefghijk');
测试插入 10 个英文字符成功,,插入 11 个英文字符失败
3. 测试插入中文字符,
insert into test values ('达梦数据库');
insert into test values ('达梦数据库棒');
insert into test values ('达梦数据库 g');
B.初始化一个实例:
LENGTH_IN_CHAR=1,CAHRSET=0,即:使用 GB18030 字符集,字符以字节为单位
1.查看当前库字符集和字符设置
select * from v$parameter where name in ('LENGTH_IN_CHAR','GLOBAL_CHARSET');
2.创建表并测试插入数据
create table test(name varchar(10));
insert into test values( 'ABCDEFGHIJqwertyuiop' );
insert into test values( 'ABCDEFGHIJqwertyuiopa');
insert into test values ('达梦数据库棒棒棒棒棒');
insert into test values ('达梦数据库棒棒棒棒棒棒');
insert into test values ('达梦数据库棒棒棒棒棒 A');
C.初始化一个实例:
LENGTH_IN_CHAR=0,CAHRSET=1,即:使用 UTF-8 字符集,字符以字节为单位
1.查看当前库字符集和字符设置
插入 10 个英文成功,插入 11 个英文失败
3.插入中文,以及插入中文加英文测试
insert into test values( '罗陈鹏' );
insert into test values( '罗陈鹏鹏' );
insert into test values( '罗陈鹏 a');
insert into test values( '罗陈鹏 aB');
D.初始化一个实例:
LENGTH_IN_CHAR=1,CAHRSET=1,即:使用 UTF-8 字符集,字符以字符个数为单位
1.查看当前库字符集和字符设置
2.创建表并测试插入数据
create table test(name varchar(10));
insert into test values('abcdefghigabcdefghigabcdefghigabcdefghig');
insert into test values('abcdefghigabcdefghigabcdefghigabcdefghiga');
insert into test values('达梦数据库达梦数据库达梦数');
insert into test values('达梦数据库达梦数据库达梦数据');
insert into test values('达梦数据库达梦数据库达梦数 a');
insert into test values('达梦数据库达梦数据库达梦数 aB');
测试结论:
1 .对于 GB18030 字符集:字符以字节为单位时,每个英文字母占用 1 字节,每个中文占用 2 字节;字符以字符为
单位时,每个英文字母 实际占用 0.5 个 字符,每个中文 实际占用 1 个字符
2 . 对于 UTF-8 字符集:字符以字节为单位时,每个英文字母占用 1 字节,每个中文占用 3 字节;字符以字符为单
位时,每个英文字符 实际占用 0. 25 个 字符,每个中文 实际占用 0.75 个字符
3 .在默认情况下,varchar 类型以字节为单位时,两种字符集对于英文的支持是一样的,但 GB18030 对于中文
会更加的友好


本文介绍了达梦数据库中LENGTH_IN_CHAR和CHARSET两个参数的作用及测试情况。LENGTH_IN_CHAR决定VARCHAR类型长度单位,而CHARSET选择字符集。通过不同配置组合,测试了在GB18030和UTF-8字符集下,字符以字节或字符为单位对英文和中文插入的影响。结论表明,默认情况下,英文插入表现一致,但GB18030对中文更友好。
https://eco.dameng.com
1649

被折叠的 条评论
为什么被折叠?



