设为首页 收藏本站
查看: 574|回复: 0

[经验分享] Oracle 分区表如何添加分区

[复制链接]

尚未签到

发表于 2016-7-27 08:40:22 | 显示全部楼层 |阅读模式
Oracle  分区表如何添加分区
1.创建个分区表
SQL> create table p_range_test
2  (id number,name varchar2(100))
3  partition by range(id)(
4  partition t_p1 values less than (10),
5  partition t_p2 values less than (20),
6  partition t_p3 values less than (30)
7  );
Table created.
2.查第一步创建好分区表的信息
SQL> col TABLE_NAME for a20
SQL> col partition_name for a20
SQL> col HIGH_VALUE for a10
SQL> col TABLESPACE_NAME for a15
SQL> select table_name,partition_name,high_value,tablespace_name
from user_tab_partitions where table_name='P_RANGE_TEST'
order by partition_position;
TABLE_NAME           PARTITION_NAME       HIGH_VALUE TABLESPACE_NAME
-------------------- -------------------- ---------- ---------------
P_RANGE_TEST         T_P1                 10         TP1
P_RANGE_TEST         T_P2                 20         TP1
P_RANGE_TEST         T_P3                 30         TP1
从上面看出已有3个分区
3.添加一个分区t_p4
SQL> alter table p_range_test add partition t_p4 values less than(40);
Table altered.
顺序添加完成,当然这个不是LZ想要的吧?
4.再第三步添加好分区的信息
SQL> select table_name,partition_name,high_value,tablespace_name
from user_tab_partitions where table_name='P_RANGE_TEST'
order by partition_position;
TABLE_NAME           PARTITION_NAME       HIGH_VALUE TABLESPACE_NAME
-------------------- -------------------- ---------- ---------------
P_RANGE_TEST         T_P1                 10         TP1
P_RANGE_TEST         T_P2                 20         TP1
P_RANGE_TEST         T_P3                 30         TP1
P_RANGE_TEST         T_P4                 40         TP1
从这个实验结果可以看到t_p4分区已经创建成功
5.如果在创建RANGE分区表的时候指定了maxvalue,不可以添加分区
(需要使用split方法来处理)
6.创建带有maxvalue的分区表
SQL> drop table p_range_test purge;--purge不回收
create table p_range_test (id number,name varchar2(100))
partition by range(id)(
partition t_p1   values less than (10),
partition t_p2   values less than (20),
partition t_p3   values less than (30),
partition t_pmax values less than (maxvalue));
Table dropped.
SQL>   2    3    4    5    6  
Table created.
7.此时添加分区时会报如下的错误
SQL>  alter table p_range_test add partition t_p4 values less than(40);
alter table p_range_test add partition t_p4 values less than(40)
*
ERROR at line 1:
ORA-14074: partition bound must collate higher than that of the last partition
添加分区失败?那有没有办法搞定呢,对于牛B的oracle来说肯定有办法了,
处理方法就是使用split来搞!
8.再查一下当前的分表的信息
SQL> select table_name,partition_name,high_value,tablespace_name
from user_tab_partitions where table_name='P_RANGE_TEST'
order by partition_position;
TABLE_NAME           PARTITION_NAME       HIGH_VALUE TABLESPACE_NAME
-------------------- -------------------- ---------- ---------------
P_RANGE_TEST         T_P1                 10         TP1
P_RANGE_TEST         T_P2                 20         TP1
P_RANGE_TEST         T_P3                 30         TP1
P_RANGE_TEST         T_PMAX               MAXVALUE   TP1
9.注意,这步就是关键的一步!!!使用split完成上面没有完成的分区任务
SQL> alter table p_range_test split partition t_pmax at (40) into
(partition T_P4, partition t_pmax);
Table altered.
10.再查一下当前的分表的信息
SQL> select table_name,partition_name,high_value,tablespace_name
from user_tab_partitions where table_name='P_RANGE_TEST'
order by partition_position;
TABLE_NAME           PARTITION_NAME       HIGH_VALUE TABLESPACE_NAME
-------------------- -------------------- ---------- ---------------
P_RANGE_TEST         T_P1                 10         TP1
P_RANGE_TEST         T_P2                 20         TP1
P_RANGE_TEST         T_P3                 30         TP1
P_RANGE_TEST         T_P4                 40         TP1
P_RANGE_TEST         T_PMAX               MAXVALUE   TP1

http://www.itpub.net/thread-1748738-1-1.html
  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-249952-1-1.html 上篇帖子: Oracle实现类split函数的方 下篇帖子: ORACLE安装时,先决条件检查失败
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表