描述
版本: DM V8 --08134283904-20220804-166351-20005 Pack4
初始化参数: 默认
ini参数: 默认
执行间隔分区表上执行merge into语句报错,信息如下:
同样的语句,在Oracle中执行正常。
测试
创建环境:
DROP TABLE IF EXISTS TAB_P001;
DROP TABLE IF EXISTS T1;
CREATE TABLE T1 AS select USERNAME,USER_ID,CREATED from dba_users;
CREATE TABLE TAB_P001
(
C1 VARCHAR2(96),
C2 TIMESTAMP(6) NOT NULL,
C3 VARCHAR2(32) NOT NULL,
PRIMARY KEY(C3))
PARTITION BY RANGE(C2)
INTERVAL(NUMTOYMINTERVAL(1, 'MONTH'))
(
PARTITION "P_202201" VALUES LESS THAN( to_date('2022-02-01 00:00:00','yyyy-mm-dd hh24:mi:ss') ),
PARTITION "P_202202" VALUES LESS THAN( to_date('2022-03-01 00:00:00','yyyy-mm-dd hh24:mi:ss'))
);
MERGE INTO TAB_P001 a USING t1 b
on (a.C3=b.user_id)
WHEN MATCHED THEN
UPDATE SET a.C1='UPDATED'
WHEN NOT MATCHED THEN
INSERT (C1,C2,C3) values(b.username,b.created,b.user_id);
COMMIT;
复制
DM中测试情况,默认会报错:
Oracle中测试正常:
问题处理
通过查询对应版本的DBA手册,搜索相关报错关键字(比如:分区表、间隔分区、自动扩展等),查找相关对应的INI参数,最终可以找到与DEL_HP_OPT_FLAG参数可能相关。该参数取值如下:
该参数为动态、会话级参数,默认为0 控制分区表的操作优化 0:不优化; 1:打开分区表DELETE优化; 2:控制范围分区表创建的优化处理,转换为数据流方式实现; 4:允许语句块中的间隔分区表自动扩展; 8:开启对TRUNCATE分区表的优化处理; 16:完全刷新时删除老数据使用DELETE方式。 支持使用上述有效值的组合值,如7表示同时进行1、2、4的优化
复制
从取值发现,取值为4时,允许语句块中的间隔分区表自动扩展。进行验证测试:
---修改DEL_HP_OPT_FLAG参数值为4
SP_SET_PARA_VALUE(1,'DEL_HP_OPT_FLAG',4);
---执行merge into语句
MERGE INTO TAB_P001 a USING t1 b
on (a.C3=b.user_id)
WHEN MATCHED THEN
UPDATE SET a.C1='UPDATED'
WHEN NOT MATCHED THEN
INSERT (C1,C2,C3) values(b.username,b.created,b.user_id);
复制
通过验证可以发现,将DEL_HP_OPT_FLAG参数值设置为4后,间隔分区表上merge into语句执行正常。
另外,根据报错信息以及参数说明,该参数默认为0时,语句块、存储过程里面涉及到间隔分区表的相关操作也会失败,修改为4后才能执行成功。测试验证如下:
---设置DEL_HP_OPT_FLAG参数值为0
SP_SET_PARA_VALUE(1,'DEL_HP_OPT_FLAG',0);
---创建存储过程并测试
create or replace procedure p_test
as
begin
insert into TAB_P001 values('AAAAA',to_date('2023-3-30','yyyy-mm-dd'),'66666');
end;
---执行存储过程
call p_test();
---设置DEL_HP_OPT_FLAG参数值为4
SP_SET_PARA_VALUE(1,'DEL_HP_OPT_FLAG',4);
---执行存储过程
call p_test();
复制
小结
默认情况下DEL_HP_OPT_FLAG参数值为0时,语句块(包括merge into)、包、存储过程中的间隔分区表不支持分区自动扩展。将参数DEL_HP_OPT_FLAG的值为4后执行正常。
DEL_HP_OPT_FLAG参数属于动态、会话级参数,可直接在线修改生效,命令如下:
SP_SET_PARA_VALUE(1,'DEL_HP_OPT_FLAG',4);
复制
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
相关阅读
达梦数据发布上市后首份财报:2024年营收10.4亿、净利3.6亿,销售平均薪酬 101 万、研发 36 万
通讯员
228次阅读
2025-04-15 12:09:47
国产数据库图谱又上新|82篇精选内容全览达梦数据库
墨天轮编辑部
218次阅读
2025-04-23 12:04:21
全国首部图数据库国家标准发布!达梦数据深度参与!
达梦数据
164次阅读
2025-04-02 09:34:13
达梦数据携手中国移动建成国内最大分布式数据库集群
通讯员
151次阅读
2025-04-02 15:10:38
达梦数据库快速上手指南
孙莹
143次阅读
2025-04-10 23:35:47
达梦中国数据库产业基地竣工,光谷崛起“数据之弧”
通讯员
139次阅读
2025-04-23 09:41:05
SQLark V3.4 更新 | 新增 PostgreSQL 数据库支持、SQL 常用代码段、表设计器体验升级,超多新功能等你来探索!
达梦产品与服务
122次阅读
2025-04-17 09:38:11
SQLark 数据生成 | 外键、自增列、check约束、虚拟列都能自动识别!
达梦产品与服务
99次阅读
2025-04-11 10:41:05
【喜报】您有一件邮件请查收!恭喜您通过达梦DCA/DCP考试~
云贝19941464235
75次阅读
2025-04-02 10:47:26
中国软件深度研究报告:打造操作系统、数据库央企龙头
通讯员
37次阅读
2025-04-21 12:20:29