为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:DM8 1-3-140-2024.05.27-229704-20093-ENT
【操作系统】:kylinv10
【CPU】:海光
【问题描述】*:
COMPATIBLE_MODE=4,业务之前是从mysql迁移到达梦
当前建表语句如下:
(
"ID" BIGINT IDENTITY(1, 2) NOT NULL,
"PURCHASER_ID" VARCHAR2(250) NOT NULL,
"API_NAME" VARCHAR2(100) NOT NULL,
"REPORT_NAME" VARCHAR2(80),
"BUSINESS_DESC" VARCHAR2(200),
"TYPE" INT DEFAULT 1 NOT NULL,
"REPORT_PROPERTIES" VARCHAR2(20),
"REPORT_TYPE" VARCHAR2(20) DEFAULT '1' NOT NULL,
"OPEN_TYPE" VARCHAR2(40) NOT NULL,
"FILTER_CONFIG" TEXT,
"SHOW_CONFIG" TEXT,
"SORT_CONFIG" TEXT,
"SAAS_MENU_KEY" VARCHAR2(100),
"LOCK_FIELD" VARCHAR2(100),
"CREATE_TIME" TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP(),
"CREATOR" BIGINT,
"CREATOR_NAME" VARCHAR2(100),
"MODIFY_TIME" TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP(),
"MODIFIER" BIGINT,
"IS_DELETED" TINYINT DEFAULT 0 NOT NULL,
"IS_BACKFLOW" TINYINT DEFAULT 0 NOT NULL,
NOT CLUSTER PRIMARY KEY("ID"),
UNIQUE("API_NAME", "OPEN_TYPE", "PURCHASER_ID")) STORAGE(USING LONG ROW, ON "MAIN", CLUSTERBTR) ;
在表中插入一些类似这样的数据
(purchaser_id字段都为'')
现在执行:
select c.id,c.api_name,c.open_type,c.filter_config,c.show_config,c.sort_config,c.lock_field,c.create_time,c.creator,c.creator_name,c.modify_time,c.modifier,c.is_deleted,c.purchaser_id
from "SY_BDC"."CUSTOM_DATASET_CONSUMER" as c where c.is_deleted =0
and c.open_type = 'table'
and (c.purchaser_id = 4293330228825191 or c.purchaser_id = '')
and c.api_name = 'source_resp_analys';
在disql会返回未选定行,管理工具就是不返回数据,也就是没匹配到任何数据
但是如果使用如下sql(c.purchaser_id = '4293330228825191'后面加了''):
select c.id,c.api_name,c.open_type,c.filter_config,c.show_config,c.sort_config,c.lock_field,c.create_time,c.creator,c.creator_name,c.modify_time,c.modifier,c.is_deleted,c.purchaser_id
from "SY_BDC"."CUSTOM_DATASET_CONSUMER" as c where c.is_deleted =0
and c.open_type = 'table'
and (c.purchaser_id = '' or c.purchaser_id = '4293330228825191')
and c.api_name = 'source_resp_analys';
就可以返回一条数据:
简言之SQL1:
select * from "SY_BDC"."CUSTOM_DATASET_CONSUMER" where (purchaser_id = '' or purchaser_id = '4293330228825191');
返回的结果符合预期
SQL2:
select * from "SY_BDC"."CUSTOM_DATASET_CONSUMER" where (purchaser_id = '' or purchaser_id = 4293330228825191);
会不返回任何结果,不符合预期。
以下是SQL1和SQL2的执行计划:
SQL1:
SQL2:
现在就是想在使用purchaser_id = 4293330228825191后面数字不加''的情况下返回预期的结果,请问该如何操作?
您好 当前环境迁移后参数是否有进行优化呢,这个表是否能导出来看看 谢谢