字符串结尾空格比较相关参数BLANK_PAD_MODE(DM8:达梦数据库)

DM8:达梦数据库 字符串结尾空格比较相关参数BLANK_PAD_MODE

  • 环境介绍
  • 1 BLANK_PAD_MODE=0
    • 1.1 初始化数据库
    • 1.2 创建测试表 T0
  • 2 BLANK_PAD_MODE=1
    • 2.1 初始化数据库
    • 2.2 创建测试表 T1
  • 3 BLANK_PAD_MODE只对字段varchar类型生效
    • 3.1 BLANK_PAD_MODE 对char 类型对比无效
    • 3.2 在两个数据库分别创建表TCHAR - 结果相同
  • 4 SPACE_COMPARE_MODE=1
    • 4.1 执行sql语句修改
  • 5 达梦数据库学习使用列表

环境介绍

CPU X86
OS Linux
DM8 1-3-12-2023.05.24-191193-20040-ENT
参数 含义 取值 建库后是否可修改
BLANK_PAD_MODE 设置字符串比较时,结尾空格填充模式是否兼容 ORACLE 取值 0 或 1。0 不兼容,1 兼容。缺省为 0 不可修改

1 BLANK_PAD_MODE=0

1.1 初始化数据库

./dminit path=dmdata5236 page_size=32 extent_size=32 BLANK_PAD_MODE=0

1.2 创建测试表 T0

DROP TABLE T0;
CREATE TABLE T0 (C3 VARCHAR(10));
INSERT INTO T0 (C3)VALUES('张');
INSERT INTO T0 (C3)VALUES('张  ');
COMMIT;
SELECT * FROM T0 WHERE C3='张';
/*
--查询结果
张
张  
*/
SELECT * FROM T0 WHERE C3='张  ';
/*
--查询结果
张
张  
*/
SELECT * FROM T0 WHERE C3='张          ';
/*
--查询结果
张
张  
*/

2 BLANK_PAD_MODE=1

2.1 初始化数据库

./dminit path=dmdata9555 page_size=32 extent_size=32 port_num=9555 BLANK_PAD_MODE=1

2.2 创建测试表 T1

DROP TABLE T1;
CREATE TABLE T1 (C3 VARCHAR(10));
INSERT INTO T1 (C3)VALUES('张');
INSERT INTO T1 (C3)VALUES('张  ');
COMMIT;
SELECT * FROM T1 WHERE C3='张';
/*
--查询结果
张
*/

SELECT * FROM T1 WHERE C3='张  ';
/*
--查询结果
张
*/

SELECT * FROM T1 WHERE C3='张       ';
/*
--无查询结果

*/

3 BLANK_PAD_MODE只对字段varchar类型生效

3.1 BLANK_PAD_MODE 对char 类型对比无效

3.2 在两个数据库分别创建表TCHAR - 结果相同

DROP TABLE TCHAR;
CREATE TABLE TCHAR (C3 CHAR(10));
INSERT INTO TCHAR (C3)VALUES('张');
INSERT INTO TCHAR (C3)VALUES('张  ');
COMMIT;
SELECT * FROM TCHAR WHERE C3='张';
/*
--查询结果
张        
张        
*/

SELECT * FROM TCHAR WHERE C3='张  ';
/*
--查询结果
张        
张        
*/

SELECT * FROM TCHAR WHERE C3='张        ';
/*
--查询结果
张        
张        
*/

4 SPACE_COMPARE_MODE=1

  • 创建数据库时BLANK_PAD_MODE参数若配置为0,创建数据库后不可修改,若有需求要实现相同结果,可以修dm.ini中参数SPACE_COMPARE_MODE=1,效果相同,修改后重启数据库生效
参数名 缺省值 属性 说明
SPACE_COMPARE_MODE 0 静态 是否在查询语句中比较字符串后缀空格。0:维持原有策略;1:进行比较

4.1 执行sql语句修改

  • SPACE_COMPARE_MODE配置为 1之后,和BLANK_PAD_MODE=1 效果一样
--若是集群环境需要使用IP连接各个数据库分别执行,最后重启数据库服务生效
SP_SET_PARA_VALUE(2, 'SPACE_COMPARE_MODE', 1);
COMMIT;

5 达梦数据库学习使用列表

  • 达梦数据库学习使用列表 - - 点击跳转

你可能感兴趣的:(数据库,DMSQL,数据迁移,数据库)