来做个实验说明该问题:
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.
顺序添加完成,当然这个不是题目所要完成的

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;
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, 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 SYS_P41 40 TP1
P_RANGE_TEST T_PMAX MAXVALUE TP1
搞定收工!!!

oracle range分区表已经有了MAXVALUE 分区,如何添加分区?要不能删除MAXVALUE分区里的数据,不影响在线应用。的更多相关文章

  1. Oracle数据库之——分组查询,子查询及添加,更新,删除

    分组查询 写的顺序: select...from...where... group by...having...order by... 执行顺序: from...where...group by... ...

  2. CentOS7下swap分区创建(添加),删除以及相关配置

    在添加swap分区之前我们可以了解下当前系统swap是否存在以及使用情况,可用: 1. free –h 或 swapon –s 了解硬盘使用情况(一般/dev/vda1为挂载硬盘): 1. df –h ...

  3. 【转】ubuntu如何修改/添加/删除硬盘分区的挂载(点)?

    我(macroliu)的问题:安装ubuntu时,/home单独挂载在一个分区,此后我想调整分区大小,删除了/home对应的分区以及另外几个分区,导致开机时找不到挂载点.把硬盘空闲空间分好区后,想把1 ...

  4. oracle 11g 分区表创建(自动按年、月、日分区)

    前言:工作中有一张表一年会增长100多万的数据,量虽然不大,可是表字段多,所以一年下来也会达到 1G,而且只增不改,故考虑使用分区表来提高查询性能,提高维护性. oracle 11g 支持自动分区,不 ...

  5. Oracle中分区表的使用

       查询分区:Select *From user_extents WHERE partition_name='分区名'; 1)创建表空间 create tablespace HRPM0 datafi ...

  6. 详解Oracle partition分区表

    随着表中行数的增多,管理和性能性能影响也将随之增加.备份将要花费更多时间,恢复也将 要花费更说的时间,对整个数据表的查询也将花费更多时间.通过把一个表中的行分为几个部分,可以减少大型表的管理和性能问题 ...

  7. Oracle split分区表引起ORA-01502错误

    继上次删除分区表的分区遇到ORA-01502错误后[详细见链接:Oracle分区表删除分区引发错误ORA-01502: 索引或这类索引的分区处于不可用状态],最近在split分区的时候又遇到了这个问题 ...

  8. 什么是Oracle的分区表 (转 作者 陈字文)

    假设我们现在正在酝酿经营一家图书馆,最初,我们只有十本书提供给大家来阅读和购买.对于十本书而言,我们可能只需要一个书架格子将其作为保存这十本书的容器就足够了,因为任何一个人都可以很轻松的扫一眼就可以将 ...

  9. 浅谈Oracle数据库分区表

    Oracle数据库分区是作为Oracle数据库性能优化的一种重要的手段和方法,之前,只听过分区的大名,却总未用过,最近简单学习了一下,总结如下,不对之处,还希望朋友们多多指点,交流! 1.表空间及分区 ...

随机推荐

  1. 【Home Page】本博客使用指南

    [关于] 坐标:ZJ.HZ.XJ. 高一现役 OIer,经常被吊打. Luogu:_Wallace_ [近期] 浙大 ICPC-ACM 2020 部分题解: 关键字「ZJU-ICPC Summer T ...

  2. Codeforces Edu Round 63 A-E

    A. Reverse a Substring 容易看出,只要符合递增顺序就符合\(NO\),否则则可以找到一组,每次记录最大值比较即可. #include <cstdio> #includ ...

  3. Java并发编程的艺术(一)——并发编程的注意问题

    并发编程是为了使程序运行得更快,但是,不是启动更多得线程就能最大限度地执行并发,也不是线程更多就能使得程序运行得更快,而且并发编程更容易产生错误,如果要高效且正确地执行并发,就需要注意这三种问题 上下 ...

  4. uniapp图片转base64

    直接上代码了,网上也很多一样的,这里记录下,因为仅仅第二种在真机微信小程序上我这里测试转换失败,所以就一并写在这里了: //图片转base64 urlTobase64(url){ // #ifdef ...

  5. easyui textbox validatebox 默认显示tip提示

    easyui验证是不显示tip提示的,验证不通过时只将输入框变红,要触发一个mouse(鼠标放上去)的事件才会显示tip. 现在想要验证不通过时直接显示提示,给用户更加直观的错误提示. 找到源代码中验 ...

  6. IOS开发中实现UITableView按照首字母将集合进行检索分组

    在开发公司项目中遇到了将图书目录进行按照首字母分组排序的问题 1.在项目添加解析汉字拼音的Pinyin.h文件 /* * pinyin.c */ #define HANZI_START 19968 # ...

  7. 多个HDFS集群的fs.defaultFS配置一样,造成应用一直连接同一个集群的问题分析

    背景 应用需要对两个集群中的同一目录下的HDFS文件个数和文件总大小进行比对,在测试环境中发现,即使两边HDFS目录下的数据不一样,应用日志显示两边始终比对一致,分下下来发现,应用连的一直是同一个集群 ...

  8. Oracle数据导入Mysql中

    一.Navicat Premium中的数据迁移工具 为了生产库释放部分资源,需要将API模块迁移到mysql中,及需要导数据. 尝试了oracle to mysql工具,迁移时报错不说,这么大的数据量 ...

  9. pag object设模式

    pag object 是自动化测试最佳模式测试之一,它主要体现在对界面交互细节的封装 优点: 减少代码重复,提高测试的可读性,提搞测试用例的可维护性.

  10. matplotlib的学习10-Contours 等高线图

    import matplotlib.pyplot as plt import numpy as np ''' 画等高线 数据集即三维点 (x,y) 和对应的高度值,共有256个点. 高度值使用一个 h ...