场景:两个系统A,B,对应分别加工A机构及B机构数据,结果表表名及表结果相同,先要求两个系统加工逻辑合并到A系统环境中,B系统将停用,后期再迁移几率较小 。
需求:因A,B系统加工逻辑不同,上游源数据来源不同,且数据量较大,弃用A系统无分区结果表,使用含有分区新表,A、B系统数据一并迁移至新表,且A、B系统支持重跑当天批次时,不应删除对方系统数据。
该需求下,如果单独创建单一类型分区表,比如range(日期),重跑历史或当前批次必定会删除AB两个系统当天批次数据,解决方案有很多,这里选用range-list分区,按照range(日期)加list(type),type区分A机构和B机构数据,重跑批次时只删除A机构或B机构对应子分区数据,可达到要求,且成本较低便于维护,补齐历史分区这里不列出。
以下示例详细列出rang-list分区用法:
--RANGE-LIST 采用分区模板创建分区表
CREATE TABLE YEXXB_DTL_TEST
( RQ VARCHAR2(8),
TYPE CHAR2(1)
)
PARTITION BY RANGE (RQ) SUBPARTITION BY LIST(TYPE)
SUBPARTITION TEMPLATE
( SUBPARTITION MOM VALUE ('0'),
SUBPARTITION SON VALUE (