注册
达梦数据库空格填充
专栏/技术分享/ 文章详情 /

达梦数据库空格填充

故渊 2025/12/05 12 0 0
摘要

1、BLANK_PAD_MODE:设置字符串比较时,结尾空格填充模式是否兼容 ORACLE,取值 0 或 1,0 不兼容,初始化实例后不可修改
1 兼容:不会忽略字符结尾的空格
0 缺省值:会忽略字符结尾的空格

BLANK_PAD_MODE只对字段varchar类型生效
BLANK_PAD_MODE 对char 类型对比无效

SPACE_COMPARE_MODE配置为 1之后,和BLANK_PAD_MODE=1 效果一样
SP_SET_PARA_VALUE(2, ‘SPACE_COMPARE_MODE’, 1);

当BLANK_PAD_MODE=0或SPACE_COMPARE_MODE=0时
VARCHAR类型和CHAR类型都会忽略字符串结尾空格

当BLANK_PAD_MODE=1或SPACE_COMPARE_MODE=1时
VARCHAR类型不会忽略字符串结尾空格
CHAR类型还是会忽略字符串结尾空格

2、示例测试
CREATE TABLE T1(id int,n1 varchar(20),n2 char(20));
insert into t1 values(10,‘ABC’,‘ABC’);
insert into t1 values(11,'ABC ','ABC ');
insert into t1 values(12,'ABC ',‘ABC’);
insert into t1 values(13,‘ABC’,'ABC ');
COMMIT;

当BLANK_PAD_MODE=0或SPACE_COMPARE_MODE=0时
SQL> select * from t1 where n1=‘ABC’;
行号 id n1 n2


1 10 ABC ABC
2 11 ABC ABC
3 12 ABC ABC
4 13 ABC ABC

SQL> select * from t1 where n1='ABC ';
行号 id n1 n2


1 10 ABC ABC
2 11 ABC ABC
3 12 ABC ABC
4 13 ABC ABC

SQL> select * from t1 where n1='ABC ';
行号 id n1 n2


1 10 ABC ABC
2 11 ABC ABC
3 12 ABC ABC
4 13 ABC ABC

SQL> select * from t1 where n2='ABC ';
行号 id n1 n2


1 10 ABC ABC
2 11 ABC ABC
3 12 ABC ABC
4 13 ABC ABC

SQL> select * from t1 where n2='ABC ';
行号 id n1 n2


1 10 ABC ABC
2 11 ABC ABC
3 12 ABC ABC
4 13 ABC ABC

SQL> select * from t1 where n2=‘ABC’;
行号 id n1 n2


1 10 ABC ABC
2 11 ABC ABC
3 12 ABC ABC
4 13 ABC ABC

当BLANK_PAD_MODE=1或SPACE_COMPARE_MODE=1时
SP_SET_PARA_VALUE(2, ‘SPACE_COMPARE_MODE’, 1);
重启实例后再次查询T1表

SQL> select * from t1 where n1=‘ABC’;
行号 id n1 n2


1 10 ABC ABC
2 13 ABC ABC

SQL> select * from t1 where n1='ABC ';
行号 id n1 n2


1 11 ABC ABC

SQL> select * from t1 where n2='ABC ';
行号 id n1 n2


1 10 ABC ABC
2 11 ABC ABC
3 12 ABC ABC
4 13 ABC ABC

SQL> select * from t1 where n2=‘ABC’;
行号 id n1 n2


1 10 ABC ABC
2 11 ABC ABC
3 12 ABC ABC
4 13 ABC ABC

SQL> select * from t1 where n2='ABC ';
行号 id n1 n2


1 10 ABC ABC
2 11 ABC ABC
3 12 ABC ABC
4 13 ABC ABC

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服