间隔分区表merge into报错“-2903: 语句块/包/存储函数中的间隔分区不支持自动扩展”

news2025/4/13 7:38:33

描述

版本: DM V8 --08134283904-20220804-166351-20005 Pack4
初始化参数: 默认
ini参数: 默认
执行间隔分区表上执行merge into语句报错,信息如下:
20221021184018
同样的语句,在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中测试情况,默认会报错:
20221021185054

Oracle中测试正常:
20221021185931

问题处理

通过查询对应版本的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); 

20221021190915

通过验证可以发现,将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();

20221021192351

小结

默认情况下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);

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/117745.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Springboot利用redis缓存,结合Aop与自定义注解实现接口节流

接口的节流是开发过程中为了防止单一微服务模块突然遭受太多并发导致用户服务不流畅而产生的业务需求,就是实现在固定时间内访问同一个接口的次数也固定。开发过程中通常采用redis去作为缓存去快存快取,对于需求次数较多的数据可以存储在redis内部&#…

Ansible剧本使用

剧本语言 剧本使用的yaml语言 yaml文件的后缀为.yml或者.yaml 使用空格做为缩进 相同层级的元素左侧对齐即可 缩进时不允许使用 Tab 键,只允许使用空格 创建剧本 直接编辑不存在会自动创建这个文件,先用touch新建也行 vim juben.yml编写剧本 hosts&am…

C语言零基础项目:2D 赛车游戏,详细思路+源码分享

目录 一、简介 二、如何建立一个地图包 三、关于碰撞图的绘制 四、游戏时的说明 五、如何更好地绘制赛场图与碰撞图? 游戏截图 源码下载 一、简介 此游戏是《2D 赛车》的”魔改版“——2.5D 双人赛车! 原作实现了 2D 视角的赛车游戏&#xff0c…

关于 国产麒麟系统赋值给双精度double时乘以1.0f编译器优化 的解决方法

若该文为原创文章,转载请注明原文出处 本文章博客地址:https://hpzwl.blog.csdn.net/article/details/128459376 红胖子(红模仿)的博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、软…

【 uniapp - 黑马优购 | 首页】小程序首页全局配置(home、网络请求、轮播图、分类...)

个人名片: 🐼作者简介:一名大二在校生,讨厌编程🎋 🐻‍❄️个人主页🥇:小新爱学习. 🐼个人WeChat:hmmwx53 🕊️系列专栏:&#x1f5bc…

csdn里的KaTex 公式语法

KaTex 语法 Accents 字母各种上下标 波浪,箭头,声调等 Delimiters 分隔符 大括号,小括号,方括号 Environments 行列式里多行多列数字表达式包含 HTML Letters and Unicode 字符和 Unicode Layout 布局 Spacing 空格 Logic and Se…

Centos系统,防火墙没开,docker部署的rabbitmq不能外网访问监听端口,但别的端口都能正常访问???

真是一个神奇的问题,防火墙firewalld ,iptables都没开。 之前访问都正常,最近可能是服务器被动了。rabbitmq的相关监听接口,只能本机服务器连接了,导致设备连接不了rabbitmq组件了。 排查问题记录 1.防火墙是否开启。发现是关闭…

web仿真或实际内存分析应用及自动化方案

js 自带 GC(垃圾回收)机制,因此绝大多数 web 开发人员不会在日常开发中考虑内存情况(包括本人),在多数业务场景中,这可能没有问题,但在一些核心web应用场景下(比如某个页…

【Spring(一)】初识Spring(史上最详细的Spring介绍!)

文章目录前言1.初识Spring2.Spring Framework系统架构3.核心概念前言 在学习 Spring 之前,我们需要先知道为什么要学习它?    IT业的任何一门技术,它只有抢占了很强的市场占有率,才会有更多的人使用和学习它,Spring技术在我们Java开发界拥…

APP怎么免费接入MobPush

1、获取AppKey 申请Appkey的流程,请点击 http://bbs.mob.com/thread-8212-1-1.html?fromuid70819 2、下载SDK 下载解压后,如下图: 目录结构 (1)Sample:演示Demo。(2)SDK&#…

【C操作符】详解操作符

操作符前言一、操作符分类二、算数操作符三、移位操作符(一)原码、补码、反码(二)操作符应用1.左移操作符(1)正数(2)负数(3)总结2.右移操作符(1&a…

《码出高效:java开发手册》六-数据结构与集合(二)

前言 接上篇,第六章第二部分,上篇讲到了红黑树的FixAfterInsertion方法,这个方法原理与fixAfterDelete类似,只讲这个添加时的调整方法 代码可以看到,调整后的根节点一定是黑色的,叶子节点可红可黑&#x…

Spring 之 @Import 注解使用与源码浅析

1、Import 的作用? 再说 Import 之前先回忆下 Component 的作用,在类上标注该注解,该类就能够被 Spring 扫描封装成 BeanDefinition 并注册到容器中。但现在需要将第三方 jar 包、或者其他路径下面的包中的类也要被扫描注册呢?使…

Unity 制作一个简单的星系

使用素材: 1.Planets with Space Background in Flat Style 2.Planet Icons 创建场景 编写脚本 using System.Collections; using System.Collections.Generic; using UnityEngine;public class Cytaster : MonoBehaviour {[SerializeField]private float rotate_s…

【LeetCode】矩阵置零 [M](矩阵)

73. 矩阵置零 - 力扣(LeetCode) 一、题目 给定一个 m x n 的矩阵,如果一个元素为 0 ,则将其所在行和列的所有元素都设为 0 。请使用 原地 算法。 示例 1: 输入:matrix [[1,1,1],[1,0,1],[1,1,1]] 输出&a…

uni-app - 封装全局 API 调用弹框组件

uni-app - 在纯 JS 文件中调用自定义弹框组件 / 封装全局 API 调用弹框组件(解决小程序、APP 无法使用 document.body.appendChild 插入组件节点)适配全端 uni-app中实现一个全局弹层组件 引用超级全局组件方案 一、安装 npm install vue-inset-loade…

零入门容器云网络-9:命令行式操作tun设备介绍

已发表的技术专栏(订阅即可观看所有专栏) 0  grpc-go、protobuf、multus-cni 技术专栏 总入口 1  grpc-go 源码剖析与实战  文章目录 2  Protobuf介绍与实战 图文专栏  文章目录 3  multus-cni   文章目录(k8s多网络实现方案) 4  gr…

测开工具:spring boot 实现同步数据库表结构

源码: GitHub - 18713341733/mysqlsync 一、使用场景 一个项目,有多套开发环境。有一套标准的数据库,不同的开发环境,有各自的一套数据库。 标准数据库的表结构经常发生变化,不同的开发环境中的数据库,…

C#,图像二值化(04)——全局阈值 Kittler 算法及其源程序

1、Kittler算法(最小误差法)概述 最小误差法是 J. Kittler & J. Illingworth 1986年在《MINIMUM ERROR THRESHOLDING》文章中提出的一种基于直方图的阈值分割方法,简称 Kittler 算法。其思想:假设灰度图像由目标和背景组成,且目标和背景满足一混合高…

11个技巧让你成为更好的 Typescript 程序员

学习 Typescript 通常是一次重新发现之旅。您的最初印象可能非常具有欺骗性:这不就是一种注释 Javascript 的方式,所以编译器可以帮助我找到潜在的错误吗? 通过 r/mevlixreddit 虽然这句话通常是正确的,但随着您继续前进&#xff…