oracle 11g 组合分区,在Oracle 11g2中交换子分区分区

我有两个表,具有相同的分区和子分区,填充了一些虚拟数据:

CREATE TABLE TEST_TBL_1(col_1 number, col_2 number, col_3 number, col_4 number ,col_5 VARCHAR2(100))

PARTITION BY RANGE (col_1, col_2, col_3)

SUBPARTITION BY RANGE (col_4)

(

PARTITION PDUMMY

VALUES LESS THAN (-1, -1, -1)

( SUBPARTITION SPDUMMY VALUES LESS THAN (-1)),

PARTITION P_1_1_1

VALUES LESS THAN (1, 1, 1)

( SUBPARTITION SP_1_1_1_1000 VALUES LESS THAN (1000),

SUBPARTITION SP_1_1_1_2000 VALUES LESS THAN (2000),

SUBPARTITION SP_1_1_1_3000 VALUES LESS THAN (3000)),

PARTITION P_2_2_2

VALUES LESS THAN (2, 2, 2)

( SUBPARTITION SP_2_2_2_1000 VALUES LESS THAN (1000),

SUBPARTITION SP_2_2_2_2000 VALUES LESS THAN (2000),

SUBPARTITION SP_2_2_2_3000 VALUES LESS THAN (3000)));

CREATE TABLE TEST_TBL_2(col_1 number, col_2 number, col_3 number, col_4 number ,col_5 VARCHAR2(100))

PARTITION BY RANGE (col_1, col_2, col_3)

SUBPARTITION BY RANGE (col_4)

(

PARTITION PDUMMY

VALUES LESS THAN (-1, -1, -1)

( SUBPARTITION SPDUMMY VALUES LESS THAN (-1)),

PARTITION P_1_1_1

VALUES LESS THAN (1, 1, 1)

( SUBPARTITION SP_1_1_1_1000 VALUES LESS THAN (1000),

SUBPARTITION SP_1_1_1_2000 VALUES LESS THAN (2000),

SUBPARTITION SP_1_1_1_3000 VALUES LESS THAN (3000)),

PARTITION P_2_2_2

VALUES LESS THAN (2, 2, 2)

( SUBPARTITION SP_2_2_2_1000 VALUES LESS THAN (1000),

SUBPARTITION SP_2_2_2_2000 VALUES LESS THAN (2000),

SUBPARTITION SP_2_2_2_3000 VALUES LESS THAN (3000)));

INSERT INTO TEST_TBL_1(col_1, col_2, col_3, col_4, col_5) values (1,1,0,500, 'TABLE 1: Partition P_1_1_1 subpartition SP_1_1_1_1000');

INSERT INTO TEST_TBL_1(col_1, col_2, col_3, col_4, col_5) values (1,1,0,1300, 'TABLE 1: Partition P_1_1_1 subpartition SP_1_1_1_2000');

INSERT INTO TEST_TBL_1(col_1, col_2, col_3, col_4, col_5) values (1,1,0,2700, 'TABLE 1: Partition P_1_1_1 subpartition SP_1_1_1_3000');

INSERT INTO TEST_TBL_1(col_1, col_2, col_3, col_4, col_5) values (1,1,0,2990, 'TABLE 1: Partition P_1_1_1 subpartition SP_1_1_1_3000');

INSERT INTO TEST_TBL_2(col_1, col_2, col_3, col_4, col_5) values (1,1,0,700, 'TABLE 2: Partition P_1_1_1 subpartition SP_1_1_1_1000');

INSERT INTO TEST_TBL_2(col_1, col_2, col_3, col_4, col_5) values (1,1,0,1500, 'TABLE 2: Partition P_1_1_1 subpartition SP_1_1_1_2000');

INSERT INTO TEST_TBL_2(col_1, col_2, col_3, col_4, col_5) values (1,1,0,2222, 'TABLE 2: Partition P_1_1_1 subpartition SP_1_1_1_3000');

INSERT INTO TEST_TBL_2(col_1, col_2, col_3, col_4, col_5) values (1,1,0,2323, 'TABLE 2: Partition P_1_1_1 subpartition SP_1_1_1_3000');

我的目标是将表1中的分区与表2中的相应分区交换,包括所有子分区数据 . 但是如果我使用交换分区语法:

ALTER TABLE test_tbl_1

EXCHANGE PARTITION P_1_1_1

WITH TABLE test_tbl_2 ;

我最终会得到一个错误:

ORA-14293: Number of partitioning columns does not match number of subpartitioning columns

有没有办法在一个语句中交换这些表之间的分区?如果不是,请您指导我一步一步完成这项工作的最有效方法吗?

谢谢 .

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值