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
文章
阅读量
获赞
