注册
达梦初始化参数LENGTH_IN_CHAR
专栏/Database Thinking/ 文章详情 /

达梦初始化参数LENGTH_IN_CHAR

胡li 2021/10/09 4090 12 0
摘要 此篇文章介绍的参数为以字符为单位,会影响数据库varchar类型存放的内容,与数据库的字符集和页大小息息相关

总结:LENGTH_IN_CHAR=1时精度在以有的基础上扩大2倍;默认值为0,以字节为单位

相关参数说明

关键字 说明
LENGTH_IN_CHAR VARCHAR类型长度是否以字符为单位(N),可选值:Y/N,1/0
CHARSET/UNICODE_FLAG 字符集(0),可选值:0[GB18030],1[UTF-8],2[EUC-KR]

以上参数初始化后不可以修改,如需修改,请重新初始化。以上参数会影响数据库varchar类型存放的内容,如GB18030,一个字符占两个字节,如果LENGTH_IN_CHAR值为0,以字节为单位,那么varchar(5)只能存放二个汉字;如果LENGTH_IN_CHAR值为1,以字符为单位,那么可以存下5个汉字;

页大小可存储长度如下:
1.png

一、以字符为长度

举例以字符为长度说明,初始化参数如下:
dminit.exe path=e:\dmdbms_190Pack4\data db_name=LENGTHINCHAR LENGTH_IN_CHAR=1 page_size=32 port_num=5237

字符集默认GB18030,端口号5237,页大小32K,以字符为单位
1.png

执行以下sql

drop table t;
create table t (name varchar2(5));
 
 
insert into t values('三');
insert into t values('三一');
insert into t values('三一三');
insert into t values('三一三一');
insert into t values('三一三一三');
insert into t values('三一三一三一');
select * from t ;

1.png

从下图可以看出,如果以字符为单位,默认会将精确度*2

1.png

二、以字节为单位

数据库初始化时默认以字节为单位

举例以字符为长度说明,初始化实例脚本如下:

dminit.exe path=e:\dmdbms_190Pack4\data db_name=LENGTHINCHAR page_size=32 port_num=5237

字符集默认GB18030,端口号5237,页大小32K,LENGTH_IN_CHAR关键字不写,则默认以字节为单位
1.png

执行以下sql

drop table t;
create table t (name varchar2(5));
 
 
insert into t values('三');
insert into t values('三一');
insert into t values('三一三');
 
select * from t ;

1.png

从下图可以看出,varchar精度没有发生变化
1.png

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服