问题描述
嗨。
今天我发现了我继承的数据库上的另一个问题。
我在错误的分区中发现了这个范围子分区。
让我试着解释一下。
场景是:
具有月份值的分区按周细分,所以我希望有一个这样的层次结构:
看着我找到的DDL
找不到如何在不丢失数据的情况下将1月子分区从2月分区移动到正确的分区
谢谢
今天我发现了我继承的数据库上的另一个问题。
我在错误的分区中发现了这个范围子分区。
让我试着解释一下。
场景是:
具有月份值的分区按周细分,所以我希望有一个这样的层次结构:
P_17_01 January 2017 SP_17_01_01 1st Jan Week SP_17_01_02 2nd Jan Week SP_17_01_03 3rd Jan Week SP_17_01_04 4th Jan Week P_17_02 February 2017 SP_17_02_01 1st Feb Week SP_17_02_02 2nd Feb Week SP_17_02_03 3rd Feb Week SP_17_02_04 4th Feb Week复制
看着我找到的DDL
P_17_01 January 2017 SP_17_01_01 1st Jan Week P_17_02 February 2017 SP_17_01_02 2nd Jan Week SP_17_01_03 3rd Jan Week SP_17_01_04 4th Jan Week SP_17_02_01 1st Feb Week SP_17_02_02 2nd Feb Week SP_17_02_03 3rd Feb Week SP_17_02_04 4th Feb Week复制
找不到如何在不丢失数据的情况下将1月子分区从2月分区移动到正确的分区
谢谢
专家解答
您不应该需要移动它们,因为数据无法输入到它们中。例如
请注意,在14 1月和31 1月之间没有任何内容进入表,因为仅在应用分区级别范围标准之后才考虑子分区。
检查每个都是空的 (应该是),然后将它们删除,然后将新的添加到现有的1月分区中
SQL> create table t ( d date ) 2 partition by range ( d ) 3 subpartition by range ( d ) 4 ( 5 partition p1 values less than (date '2000-02-01' ) 6 ( 7 subpartition p1s1 values less than (date '2000-01-07' ), 8 subpartition p1s2 values less than (date '2000-01-14' ) 9 ), 10 partition p2 values less than (date '2000-03-01' ) 11 ( 12 subpartition p1s3 values less than (date '2000-01-21' ), 13 subpartition p1s4 values less than (date '2000-01-31' ), 14 subpartition p2s1 values less than (date '2000-02-07' ), 15 subpartition p2s2 values less than (date '2000-02-14' ), 16 subpartition p2s3 values less than (date '2000-02-21' ), 17 subpartition p2s4 values less than (date '2000-02-29' ) 18 ) 19 ) ; Table created. SQL> SQL> begin 2 for i in 0 .. 200 loop 3 begin 4 insert into t values ( date '2000-01-01'+i ) ; 5 commit; 6 exception 7 when others then null; 8 end; 9 end loop; 10 end; 11 / PL/SQL procedure successfully completed. SQL> SQL> select * from t order by 1; D --------- 01-JAN-00 02-JAN-00 03-JAN-00 04-JAN-00 05-JAN-00 06-JAN-00 07-JAN-00 08-JAN-00 09-JAN-00 10-JAN-00 11-JAN-00 12-JAN-00 13-JAN-00 01-FEB-00 02-FEB-00 03-FEB-00 04-FEB-00 05-FEB-00 06-FEB-00 07-FEB-00 08-FEB-00 09-FEB-00 10-FEB-00 11-FEB-00 12-FEB-00 13-FEB-00 14-FEB-00 15-FEB-00 16-FEB-00 17-FEB-00 18-FEB-00 19-FEB-00 20-FEB-00 21-FEB-00 22-FEB-00 23-FEB-00 24-FEB-00 25-FEB-00 26-FEB-00 27-FEB-00 28-FEB-00 41 rows selected. SQL>复制
请注意,在14 1月和31 1月之间没有任何内容进入表,因为仅在应用分区级别范围标准之后才考虑子分区。
检查每个都是空的 (应该是),然后将它们删除,然后将新的添加到现有的1月分区中
SQL> alter table t drop subpartition p1s3; Table altered. SQL> alter table t modify partition p1 add subpartition p1s3 values less than (date '2000-01-21' ); Table altered.复制
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
相关阅读
Oracle RAC 一键安装翻车?手把手教你如何排错!
Lucifer三思而后行
597次阅读
2025-04-15 17:24:06
【纯干货】Oracle 19C RU 19.27 发布,如何快速升级和安装?
Lucifer三思而后行
576次阅读
2025-04-18 14:18:38
XTTS跨版本迁移升级方案(11g to 19c RAC for Linux)
zwtian
491次阅读
2025-04-08 09:12:48
Oracle数据库一键巡检并生成HTML结果,免费脚本速来下载!
陈举超
474次阅读
2025-04-20 10:07:02
【ORACLE】记录一些ORACLE的merge into语句的BUG
DarkAthena
459次阅读
2025-04-22 00:20:37
【ORACLE】你以为的真的是你以为的么?--ORA-38104: Columns referenced in the ON Clause cannot be updated
DarkAthena
434次阅读
2025-04-22 00:13:51
Oracle 19c RAC更换IP实战,运维必看!
szrsu
434次阅读
2025-04-08 23:57:08
【活动】分享你的压箱底干货文档,三篇解锁进阶奖励!
墨天轮编辑部
419次阅读
2025-04-17 17:02:24
火焰图--分析复杂SQL执行计划的利器
听见风的声音
367次阅读
2025-04-17 09:30:30
3月“墨力原创作者计划”获奖名单公布
墨天轮编辑部
358次阅读
2025-04-15 14:48:05