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 達夢數據庫學習使用列表