为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:DM8
【操作系统】:WIN10
【CPU】:
【问题描述】*:
我使用的DM8的BUILD_VERSION为:1-3-12-2023.04.17-187846-20040-ENT
测试中发现,在匿名块中向分区表的已存在分区中新增记录没问题,但如果新增记录需要自动扩展新分区,则会报“-2903: 语句块/包/存储函数中的间隔分区不支持自动扩展” 错误。
由提示内容能看出,存储过程、包也有同样问题,请问这个是否有变通方案或改进计划?
呃,预先把分区都加进来然后TRUNCATE表这个办法就不用了吧。。。
我的测试过程如下:
--DROP TABLE TST_INV;
--建时间间隔分区表
CREATE TABLE TST_INV
(
DATEVAL DATETIME,
ID INT,
NAME VARCHAR2(32)
)
PARTITION BY RANGE(DATEVAL)
INTERVAL (NUMTODSINTERVAL(1,'day'))
(
PARTITION PART_DEF VALUES LESS THAN(TO_DATE('2020-01-01 00:00:00','yyyy-mm-dd hh24:mi:ss'))
);
--新增记录
INSERT INTO TST_INV VALUES(TO_DATE('2020-01-02 00:00:00','yyyy-mm-dd hh24:mi:ss'),1,'ASDF')
COMMIT;
--查看数据
SELECT * FROM TST_INV;
--查看分区情况
SELECT *
FROM USER_TAB_PARTITIONS
WHERE TABLE_NAME = 'TST_INV';
--通过匿名块新增记录
BEGIN
--向已存在分区中新增记录正常
--INSERT INTO TST_INV VALUES(TO_DATE('2020-01-02 00:00:00','yyyy-mm-dd hh24:mi:ss'),2,'QWER');
--新增需要扩展分区的记录时报错
INSERT INTO TST_INV VALUES(TO_DATE('2020-01-03 00:00:00','yyyy-mm-dd hh24:mi:ss'),2,'QWER');
END;
打开PLSQL间隔分区操作功能
sp_set_para_value(1,'DEL_HP_OPT_FLAG', 4);