DM8:达梦数据库 字符串结尾空格比较相关参数BLANK_PAD_MODE 环境介绍 1 BLANK_PAD_MODE=0 2 BLANK_PAD_MODE=1 3 BLANK_PAD_MODE只对字段varchar类型生效 3.1 BLANK_PAD_MODE 对char 类型对比无效 3.2 在两个数据库分别创建表TCHAR - 结果相同 4 SPACE_COMPARE_MODE=1 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 效果一样
SP_SET_PARA_VALUE( 2 , 'SPACE_COMPARE_MODE' , 1 ) ;
COMMIT ;
5 达梦数据库学习使用列表