一、DM大小写敏感问题
如下两套DM数据库,分别为大小写敏感与非敏感。
当CASE_SENSITIVE为1大小写敏感时,会将A,a区分开来,仅查询a,当CASE_SENSITIVE为0大小写不敏感时,A,a会被DM认为是相同的字符。
同时,在DISQL中会默认将小写转换为大写,在创建表test_01时会自动将表名转换为TEST_01。
当CASE_SENSITIVE为1大小写敏感时,查询"test_01",双引号将test_01识别为字符,为小写,此时查无此表。
当CASE_SENSITIVE为0大小写不敏感时,查询"test_01",双引号将test_01识别为字符,为小写,可以查到该表。
(1)
select sf_get_case_sensitive_flag();
create table test_01(col_1 varchar(20));
insert into test_01 values
('A'),('A'),('a'),('a'),('a');
(2)
select sf_get_case_sensitive_flag();
create table test_01(col_1 varchar(20));
insert into test_01 values
('A'),('A'),('a'),('a'),('a');
二、DM空格填充模式BLANK_PAD_MODE
blank_pad_mode,设置字符串比较时,结尾空格填充模式是否兼容ORACLE,取值0或1。0不兼容,1兼容。默认为0
当blank_pad_mode=0时,对于'a','a ','a '不严格区分
当blank_pad_mode=1时,对于'a','a ','a '严格区分
(1)
(2)
三、字符集问题
在创建达梦数据库实例时可选的字符集有三个:GB18030(0)、UTF-8(1)、EUC-KR(2)。括号里的数字代表对应的编号。 默认使用的字符集是GB18030,其中EUC-KR表示的是韩文字符集。四种字符集的包括关系:GB2312 < GBK < GB18030 < UTF8
GB18030向下兼容GBK和GB2312编码,每个英文占1个字节(正数),每个中文占2个字节(第一个负数、第二个可正可负)
UTF8国际码表,英文占1个字节,中文占3个字节
(1)当字符集为GB18030时,一个中文字节占2个字符,定义VARCHAR(2),故可以插入
(2)当字符集为UTF8时,一个中文字节占3个字符,定义VARCHAR(2),故无法插入
达梦社区地址:https://eco.dameng.com