达梦length_in_char、charset参数介绍

  • 参数概述

  • LENGTH_IN_CHAR

varchar类型的长度是否以字符为单位,默认值为:0,取值:0、1;需注意此参数初始化实例后不能再进行修改。

1/是:varchar类型的长度以字符为单位;

0/否:varchar类型的长度以字节为单位。

查看数据库中此参数值:

select NAME,VALUE from v$parameter where name='LENGTH_IN_CHAR';

CHARSET

字符集编码,取值:0、1、2,默认值为:0,需注意此参数初始化实例后不能再进行修改。

0:GB18030,

1:UTF-8,

2:EUC-KR,

查看数据库中此参数值:

select  UNICODE();

  • 测试

  • LENGTH_IN_CHAR=0   CHARSET=0

create table t1(name varchar(5));

insert into t1 values(‘aaaaa’);   ---执行成功

insert into t1 values(‘aaaaab’);  ---执行失败,列[name]长度超出定义

insert into t1 values(‘李一’);   ---执行成功

insert into t1 values(‘李一a’);   ---执行成功

insert into t1 values(‘李一一’);  ---执行失败,列[name]长度超出定义

LENGTH_IN_CHAR=1   CHARSET=0

create table t1(name varchar(5));

insert into t1 values(‘aaaabbbbb’);   --执行成功

insert into t1 values(‘aaaabbbbbc’);  --执行失败,列[name]长度超出定义

insert into t1 values(‘一二三四五’);   ---执行成功

insert into t1 values(‘一二三四五六’);  ---执行失败,列[name]长度超出定义

LENGTH_IN_CHAR=0   CHARSET=1

create table t1(name varchar(5));

insert into t1 values(‘aaaaa’);   ---执行成功

insert into t1 values(‘aaaaab’);  ---执行失败,列[name]长度超出定义

insert into t1 values(‘一’);   ---执行成功

insert into t1 values(‘一a’);   ---执行成功

insert into t1 values(‘一aa’);   ---执行成功

insert into t1 values(‘一一’);  ---执行失败,列[name]长度超出定义

LENGTH_IN_CHAR=1   CHARSET=1

create table t1(name varchar(5));

insert into t1 values(‘aaaaabbbbbcccccddddd’);   ---执行成功

insert into t1 values(‘aaaaabbbbbcccccddddde’);  ---执行失败,列[name]长度超出定义

insert into t1 values(‘一二三四五六’);   ---执行成功

insert into t1 values(‘一二三四五六七’);  ---执行失败,列[name]长度超出定义

  • 总结

  1. CB10830中文占2个字符,英文占1个字符;UTF-8中文占3个字符,英文占一个字符;
  2. 当LENGTH_IN_CHAR=1  CHARSET=0时,varchar会将字节长度扩充2倍,当LENGTH_IN_CHAR=1  CHARSET=1时,varchar会将字节长度扩充4倍,

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值