【DM版本】:DM Database Server 64 V8 03134284194-20240621-232765-20108
【操作系统】:银河麒麟
需求:
创建存储过程 往LIST分区表写入数据,数据是按月分区的,过程需要支持新月份数据插入和以前月份数据的更新。
问题:
过程先维护分区,分区不存在要先创建分区,再进行数据写入。报错【-7184: 对象定义[TABLE_NAME]被修改,版本检查失败】
如何实现在一个存储过程中多分区表进行分区维护并写入数据?
绕过方式可以将过程逻辑改成动态sql,
例如
分区表TEST_PARTITION
分区列p_date
子表P+日期
EXECUTE IMMEDIATE 'ALTER TABLE TEST_PARTITION ADD PARTITION P'||p_date||' VALUES ('||''''||p_date||''''||')';
-7184通常发生在并发操作中,当一个会话修改了表结构(如添加分区),另一个会话尝试访问该表时,版本检查失败。在存储过程中,我们需要确保分区维护和数据写入操作的原子性。