为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:DM8
【操作系统】:
【CPU】:
【问题描述】*:
存储过程中,向分区表(范围分区)插入数据,查询是否有当期数据的分区,没有则先创建分区,再执行insert,通过日志排查到,分区建立成功,insert into时候报错: -7009 对象定义被修改
代码如下:
PROCEDURE T_TEST("IN_DATA" IN VARCHAR2(32767))AS
BEGIN
V_PRC_NAME:='T_TEST';
V_TEMP_DATE:=TO_DATE(IN_DATA,'YYYYMMDD');
V_CURR_DATE:=TO_CHAR(V_TEMP_DATE,'YYYY-MM-DD');
--查询是否有分区 无分区则创建新的分区
T_DROP_PARTITION(V_PRC_NAME,IN_DATA);
--放入最新的数据
INSERT INTO T_TEST_ALL(
JILUZT,
STATIS_DATE
)
SELECT
JILUZT,
V_CURR_DATE
FROM T_TEST
WHERE STATIS_DATE = V_CURR_DATE;
COMMIT;
END;
可以试试动态执行sql,execute immediate ‘sql’;
排查发现仅有新建分区时,才会发生这种情况,若之前已经有分区,对分区做truncate,并不会报错,求解需要怎么解决?