split partition用法

当分区表有最大分区的时候,不能直接添加分区,就需要用到split partition:

下面是示例:

create table a (id number, name varchar2(30),name1 varchar2(30),name2 varchar2(30),time date) partition by range (time)
(
partition p2013 values less than (to_date(‘2014-01-01‘, ‘yyyy-mm-dd‘)),
partition p2014 values less than (to_date(‘2015-01-01‘, ‘yyyy-mm-dd‘)),
partition p2015 values less than (to_date(‘2016-01-01‘, ‘yyyy-mm-dd‘)),
partition p2016 values less than (to_date(‘2017-01-01‘, ‘yyyy-mm-dd‘)),
partition p2017 values less than (to_date(‘2018-01-01‘, ‘yyyy-mm-dd‘)),
partition p2018 values less than (to_date(‘2019-01-01‘, ‘yyyy-mm-dd‘)),
partition p2019 values less than (to_date(‘2020-01-01‘, ‘yyyy-mm-dd‘)),
partition pmax values less than (maxvalue)
);

select TABLE_OWNER,table_name,partition_name,high_value from dba_tab_partitions where table_name=‘A‘ and TABLE_OWNER=‘TEST1‘;
SQL> select TABLE_OWNER,table_name,partition_name,high_value from dba_tab_partitions where table_name=‘A‘ and TABLE_OWNER=‘TEST1‘;

TABLE_OWNER TABLE_NAME PARTITION_NAME HIGH_VALUE
------------------------------ ------------------------------ ------------------------------ --------------------------------------------------------------------------------
TEST1 A P2013 TO_DATE(‘ 2014-01-01 00:00:00‘, ‘SYYYY-MM-DD HH24:MI:SS‘, ‘NLS_CALENDAR=GREGORIA
TEST1 A P2014 TO_DATE(‘ 2015-01-01 00:00:00‘, ‘SYYYY-MM-DD HH24:MI:SS‘, ‘NLS_CALENDAR=GREGORIA
TEST1 A P2015 TO_DATE(‘ 2016-01-01 00:00:00‘, ‘SYYYY-MM-DD HH24:MI:SS‘, ‘NLS_CALENDAR=GREGORIA
TEST1 A P2016 TO_DATE(‘ 2017-01-01 00:00:00‘, ‘SYYYY-MM-DD HH24:MI:SS‘, ‘NLS_CALENDAR=GREGORIA
TEST1 A P2017 TO_DATE(‘ 2018-01-01 00:00:00‘, ‘SYYYY-MM-DD HH24:MI:SS‘, ‘NLS_CALENDAR=GREGORIA
TEST1 A P2018 TO_DATE(‘ 2019-01-01 00:00:00‘, ‘SYYYY-MM-DD HH24:MI:SS‘, ‘NLS_CALENDAR=GREGORIA
TEST1 A P2019 TO_DATE(‘ 2020-01-01 00:00:00‘, ‘SYYYY-MM-DD HH24:MI:SS‘, ‘NLS_CALENDAR=GREGORIA
TEST1 A PMAX MAXVALUE

8 rows selected.

下面我们加分区:
SQL> alter table test1.a add partition "p2020" values less than (to_date(‘2021-01-01‘,‘yyyy-mm-dd‘)) tablespace "TEST1";
alter table test1.a add partition "p2020" values less than (to_date(‘2021-01-01‘,‘yyyy-mm-dd‘)) tablespace "TEST1"
*
ERROR at line 1:
ORA-14074: partition bound must collate higher than that of the last partition

alter table test1.a add partition "P2012" values less than (to_date(‘2013-01-01‘,‘yyyy-mm-dd‘)) tablespace "TEST1";

SQL> alter table test1.a add partition "P2012" values less than (to_date(‘2013-01-01‘,‘yyyy-mm-dd‘)) tablespace "TEST1";
alter table test1.a add partition "P2012" values less than (to_date(‘2013-01-01‘,‘yyyy-mm-dd‘)) tablespace "TEST1"
*
ERROR at line 1:
ORA-14074: partition bound must collate higher than that of the last partition

因为已经有MAXVALUE这个值,这个时候不允许直接增加分区,而是通过拆分分区实现的。

alter table test1.a add partition "p2020" values less than (to_date(‘2021-01-01‘,‘yyyy-mm-dd‘)) tablespace "TEST1";

增加分区p2020

alter table a split partition pmax at(to_date(‘2021-01-01‘,‘yyyy-mm-dd‘)) INTO (PARTITION P2020,partition pmax);
SQL> select TABLE_OWNER,table_name,partition_name,high_value from dba_tab_partitions where table_name=‘A‘ and TABLE_OWNER=‘TEST1‘;

TABLE_OWNER TABLE_NAME PARTITION_NAME HIGH_VALUE
------------------------------ ------------------------------ ------------------------------ --------------------------------------------------------------------------------
TEST1 A P2013 TO_DATE(‘ 2014-01-01 00:00:00‘, ‘SYYYY-MM-DD HH24:MI:SS‘, ‘NLS_CALENDAR=GREGORIA
TEST1 A P2014 TO_DATE(‘ 2015-01-01 00:00:00‘, ‘SYYYY-MM-DD HH24:MI:SS‘, ‘NLS_CALENDAR=GREGORIA
TEST1 A P2015 TO_DATE(‘ 2016-01-01 00:00:00‘, ‘SYYYY-MM-DD HH24:MI:SS‘, ‘NLS_CALENDAR=GREGORIA
TEST1 A P2016 TO_DATE(‘ 2017-01-01 00:00:00‘, ‘SYYYY-MM-DD HH24:MI:SS‘, ‘NLS_CALENDAR=GREGORIA
TEST1 A P2017 TO_DATE(‘ 2018-01-01 00:00:00‘, ‘SYYYY-MM-DD HH24:MI:SS‘, ‘NLS_CALENDAR=GREGORIA
TEST1 A P2018 TO_DATE(‘ 2019-01-01 00:00:00‘, ‘SYYYY-MM-DD HH24:MI:SS‘, ‘NLS_CALENDAR=GREGORIA
TEST1 A P2019 TO_DATE(‘ 2020-01-01 00:00:00‘, ‘SYYYY-MM-DD HH24:MI:SS‘, ‘NLS_CALENDAR=GREGORIA
TEST1 A P2020 TO_DATE(‘ 2021-01-01 00:00:00‘, ‘SYYYY-MM-DD HH24:MI:SS‘, ‘NLS_CALENDAR=GREGORIA
TEST1 A PMAX MAXVALUE

9 rows selected.

增加分区p2012
alter table a split partition p2013 at (to_date(‘2013-01-01‘,‘yyyy-mm-dd‘))INTO (PARTITION p2012,partition p2013);
SQL> select TABLE_OWNER,table_name,partition_name,high_value from dba_tab_partitions where table_name=‘A‘ and TABLE_OWNER=‘TEST1‘;

TABLE_OWNER TABLE_NAME PARTITION_NAME HIGH_VALUE
------------------------------ ------------------------------ ------------------------------ --------------------------------------------------------------------------------
TEST1 A P2012 TO_DATE(‘ 2013-01-01 00:00:00‘, ‘SYYYY-MM-DD HH24:MI:SS‘, ‘NLS_CALENDAR=GREGORIA
TEST1 A P2013 TO_DATE(‘ 2014-01-01 00:00:00‘, ‘SYYYY-MM-DD HH24:MI:SS‘, ‘NLS_CALENDAR=GREGORIA
TEST1 A P2014 TO_DATE(‘ 2015-01-01 00:00:00‘, ‘SYYYY-MM-DD HH24:MI:SS‘, ‘NLS_CALENDAR=GREGORIA
TEST1 A P2015 TO_DATE(‘ 2016-01-01 00:00:00‘, ‘SYYYY-MM-DD HH24:MI:SS‘, ‘NLS_CALENDAR=GREGORIA
TEST1 A P2016 TO_DATE(‘ 2017-01-01 00:00:00‘, ‘SYYYY-MM-DD HH24:MI:SS‘, ‘NLS_CALENDAR=GREGORIA
TEST1 A P2017 TO_DATE(‘ 2018-01-01 00:00:00‘, ‘SYYYY-MM-DD HH24:MI:SS‘, ‘NLS_CALENDAR=GREGORIA
TEST1 A P2018 TO_DATE(‘ 2019-01-01 00:00:00‘, ‘SYYYY-MM-DD HH24:MI:SS‘, ‘NLS_CALENDAR=GREGORIA
TEST1 A P2019 TO_DATE(‘ 2020-01-01 00:00:00‘, ‘SYYYY-MM-DD HH24:MI:SS‘, ‘NLS_CALENDAR=GREGORIA
TEST1 A P2020 TO_DATE(‘ 2021-01-01 00:00:00‘, ‘SYYYY-MM-DD HH24:MI:SS‘, ‘NLS_CALENDAR=GREGORIA
TEST1 A PMAX MAXVALUE

10 rows selected.

自己总结语法:

alter table table_owner.table_name splite partition_name at (partition_values) into (PARTITION partiition_name TABLESPACE tablespace_name NOCOMPRESS,PARTITION partition_new_name TABLESPACE tablespace_name NOCOMPRESS) parallel 16;

解释:

partition_name是已经存在的分区。 partition_new_name 是我们要生成的分区。

可以指定表空间和是否压缩。  NOCOMPRESS

可以并行。

原文地址:https://www.cnblogs.com/liang-ning/p/12573850.html

时间: 2024-10-25 17:54:49

split partition用法的相关文章

Java中split的用法

简介 Java中的我们可以利用split把字符串按照指定的分割符进行分割,然后返回字符串数组. 下面是string.split的用法实例及注意事项: java.lang.string.split  split方法 将一个字符串分割为子字符串,然后将结果作为字符串数组返回. stringObj.split([separator,[limit]])  stringObj 必选项.要被分解的 String 对象或文字,该对象不会被split方法修改. separator 可选项.字符串或正则表达式对象

oracle中add&split partition对global&local index的影响

生产库中某些大表的分区异常,需要对现有表进行在线操作,以添加丢失分区,因为是生产库,还是谨慎点好,今天有空,针对add&split分区对global&local索引的影响进行了测试,测试版本为oracle11.2.0.4,过程如下: 首先,创建分区表: CREATE TABLE TP1 ( C1 INT PRIMARY KEY, C2 VARCHAR2(10), C3 CHAR(10) ) partition by range (c1) ( partition p1 values less

perl:split函数用法

本文和大家重点讨论一下Perl split函数的用法,Perl中的一个非常有用的函数是Perl split函数-把字符串进行分割并把分割后的结果放入数组中.这个Perl split函数使用规则表达式(RE),如果未特定则工作在$_变量上. Perl split函数 Perl中的一个非常有用的函数是Perl split函数-把字符串进行分割并把分割后的结果放入数组中.这个Perl split函数使用规则表达式(RE),如果未特定则工作在$_变量上. Perl split函数可以这样使用: $inf

c#--foreach遍历的用法与split的用法

一. foreach循环用于列举出集合中所有的元素,foreach语句中的表达式由关键字in隔开的两个项组成.in右边的项是集合名,in左边的项是变量名,用来存放该集合中的每个元素.该循环的运行过程如下:每一次循环时,从集合中取出一个新的元素值.放到只读变量中去,如果括号中的整个表达式返回值为true,foreach块中的语句就能够执行.一旦集合中的元素都已经被访问到,整个表达式的值为false,控制流程就转入到foreach块后面的执行语句. foreach语句经常与数组一起使用,下面实例将通

Split / Partition a collection into smaller collections - Java - Tutorial

Partition a collection into smaller collections This article describes how to partition a collections into a given number of smaller collections. Table of Contents 1. Partition a collection 2. Partition collection in Java 2.1. Implementation 2.2. Tes

jquery 中substring,substr,split的用法

substring 方法 返回位于 String 对象中指定位置的子字符串. strVariable.substring(start, end) "String Literal".substring(start, end) 参数 start 指明子字符串的起始位置,该索引从 0 开始起算. end 指明子字符串的结束位置,该索引从 0 开始起算. 说明 方法将返回一个包含从 start 到最后(不包含 end )的子字符串的字符串. substring 方法使用 start 和 end

js split函数用法总结

split定义和用法 split() 方法用于把一个字符串分割成字符串数组. 语法 stringObject.split(separator,howmany) 参数 描述 separator 必需.字符串或正则表达式,从该参数指定的地方分割 stringObject. howmany 可选.该参数可指定返回的数组的最大长度.如果设置了该参数,返回的子串不会多于这个参数指定的数组.如果没有设置该参数,整个字符串都会被分割,不考虑它的长度. 返回值 一个字符串数组.该数组是通过在 separator

jQuery中filter(),not(),split()的用法

filter(),not(): <script type="text/javascript"> $(document).ready(function() { //输出 hello alert($("p").filter(".selected").html()); //输出 How are you? alert($("p").not(".selected").html()); }); </s

js中substr,substring,indexOf,lastIndexOf,split 的用法

1.substr substr(start,length)表示从start位置开始,截取length长度的字符串. var src="images/off_1.png";alert(src.substr(7,3)); 弹出值为:off 2.substring substring(start,end)表示从start到end之间的字符串,包括start位置的字符但是不包括end位置的字符. var src="images/off_1.png";alert(src.su