How to Add Multiple Partitions in Oracle 12C (Doc ID 1482456.1)

APPLIES TO:

Oracle Database - Enterprise Edition - Version 12.1.0.1 and later
Oracle Database Exadata Cloud Machine - Version N/A and later
Oracle Cloud Infrastructure - Database Service - Version N/A and later
Oracle Database Exadata Express Cloud Service - Version N/A and later
Oracle Database Cloud Exadata Service - Version N/A and later
Information in this document applies to any platform.
Oracle 12C

GOAL

To demonstrate new feature in 12c, adding multiple table partitions in a single command  为了演示12c中的新功能,请在单个命令中添加多个表分区

SOLUTION

NOTE: In the images and/or the document content below, the user information and data used represents fictitious data from the Oracle sample schema(s) or Public Documentation delivered with an Oracle database product.  Any similarity to actual persons, living or dead, is purely coincidental and not intended in any manner. 

You can add multiple new partitions with the ADD PARTITION clause of the ALTER TABLE statement. When adding multiple partitions, local and global index operations are the same as when adding a single partition. Note that both ADD PARTITION and ADD PARTITIONS are synonymous.
您可以使用 ALTER TABLE 语句的 ADD PARTITION 子句添加多个新分区。 添加多个分区时,本地索引和全局索引操作与添加单个分区时相同。 请注意,ADD PARTITION 和 ADD PARTITIONS 都是同义词。

RANGE PARTITIONS  范围分区

You can add multiple range partitions that are listed in ascending order of their upper bound values to the high end (after the last existing partition) of a range-partitioned or composite range-partitioned table, provided the MAXVALUE partition is not defined.
您可以将以上限值的升序排列的多个范围分区添加到范围分区表或组合范围分区表的高端(在最后一个现有分区之后),前提是未定义MAXVALUE分区。

CREATE TABLE sales
(prod_id NUMBER(6),
cust_id NUMBER,
time_id DATE,
channel_id CHAR(1),
promo_id NUMBER(6),
quantity_sold NUMBER(3),
amount_sold NUMBER(10,2))
partition by range(time_id)
(partition sales_q1_2006 values less than (TO_DATE('01-APR-2006','dd-MON-yyyy')),
partition sales_q2_2006 values less than (TO_DATE('01-JUL-2006','dd-MON-yyyy')),
partition sales_q3_2006 values less than (TO_DATE('01-OCT-2006','dd-MON-yyyy')),
partition sales_q4_2006 values less than (TO_DATE('01-JAN-2007','dd-MON-yyyy')));

The above example creates a sales table with four partitions, one for each quarter of 2006. 上面的示例创建了一个具有四个分区的sales表,
Each partition is given a name: sales_q1_2006, sales_q2_2006, sales_q3_2006, and sales_q4_2006.  每个分区用于2006年的每个季度。每个分区都有一个名称:sales_q1_2006,sales_q2_2006,sales_q3_2006和sales_q4_2006。
The time_id column is the partitioning column, while its value represents the partitioning key of a specific row.  time_id列是分区列,而其值表示特定行的分区键。
The VALUES LESS THAN clause determines the partition bound: Rows with partitioning key values that compare less than the ordered list of values specified by the clause are stored in the partition. 
VALUES LESS THAN子句确定分区的边界:分区键值的行比该子句指定的值的有序列表小的行存储在分区中。
For example, a row with time_id=17-MAR-2006 would be stored in partition sales_q1_2006.  例如,time_id = 17-MAR-2006的行将存储在分区sales_q1_2006中。

You can add multiple partitions using a single statement by specifying the individual partitions. 您可以通过指定单个分区来使用单个语句添加多个分区
For example, in the below example, you add multiple partitions to the Range-partitioned sales table created earlier named sales_q1_2007, sales_q2_2007, sales_q3_2007 and sales_q4_2007.
例如,在下面的示例中,您将多个分区添加到先前创建的名为sales_q1_2007,sales_q2_2007,sales_q3_2007和sales_q4_2007的范围分区销售表中。

ALTER TABLE sales ADD
PARTITION sales_q1_2007 VALUES LESS THAN (TO_DATE('01-APR-2007','dd-MON-yyyy')),
PARTITION sales_q2_2007 VALUES LESS THAN (TO_DATE('01-JUL-2007','dd-MON-yyyy')),
PARTITION sales_q3_2007 VALUES LESS THAN (TO_DATE('01-OCT-2007','dd-MON-yyyy')),
PARTITION sales_q4_2007 VALUES LESS THAN (TO_DATE('01-JAN-2008','dd-MON-yyyy'));

LIST PARTITIONS  列表分区

You can add multiple list partitions to a table using new sets of partition values if the DEFAULT partition does not exist.  如果DEFAULT分区不存在,则可以使用新的分区值集将多个列表分区添加到一个表中。

CREATE TABLE sales_list
(salesman_name VARCHAR2(30),
sales_state VARCHAR2(20))
PARTITION BY LIST(sales_state)
(
PARTITION sales_CA VALUES('California'),
PARTITION sales_NY VALUES ('New York'),
PARTITION sales_NJ VALUES ('New Jersey'),
PARTITION sales_CT VALUES ('Connecticut'),
PARTITION sales_PA VALUES ('Pennsylvania'),
PARTITION sales_IL VALUES('Illinois')); ALTER TABLE sales_list add
PARTITION sales_NE VALUES ('Nebraska'),
PARTITION sales_AZ VALUES ('Arizona'),
PARTITION sales_MD VALUES ('Maryland');

SYSTEM PARTITIONS  系统分区

The BEFORE clause can be used to add multiple new system partitions in relation to only one existing partition. If the clause is specified at the end of the SQL statement, then all the new partitions are added before the partition specified in the clause. Otherwise, the new partitions are added after the existing partitions.  BEFORE子句可用于仅相对于一个现有分区添加多个新系统分区。如果在SQL语句的末尾指定了子句,则所有新分区都将添加到该子句中指定的分区之前。否则,新分区将添加到现有分区之后。
For example, the following SQL statement adds three new partitions before the part_last partition for the system partitioned table:  例如,以下SQL语句在系统分区表的part_last分区之前添加了三个新分区

ALTER TABLE system_table1 ADD PARTITIONS 3 BEFORE part_last;

The following SQL statement adds multiple individual partitions using the BEFORE clause:  以下SQL语句使用BEFORE子句添加多个单独的分区

ALTER TABLE system_table2 ADD
PARTITION p5,
PARTITION p6,
PARTITION p7
BEFORE PARTITION pMax;

REFERENCES

NOTE:785462.1 - 11g New Features: System Partitioning

如何在Oracle 12C中添加多个分区 (Doc ID 1482456.1)的更多相关文章

  1. 如何在Oracle 12C中Drop/Truncate多个分区 (Doc ID 1482264.1)

    How to Drop/Truncate Multiple Partitions in Oracle 12C (Doc ID 1482264.1) APPLIES TO: Oracle Databas ...

  2. Data Guard:Oracle 12c –新增和更新的功能 (Doc ID 1558256.1)

    Data Guard: Oracle 12c – New and updated Features (Doc ID 1558256.1) APPLIES TO: Oracle Database - E ...

  3. Oracle 12c中新建pdb用户登录问题分析

    Oracle 12c新建用户登录问题分析1 用sys用户新建用户,提示公用用户名或角色名无效.原因:Oracle 12c中,在容器中建用户(或者应该称为使用者),须在用户名前加c##.默认登录连接的就 ...

  4. oracle 12c 中asm元数据是否有所变化

    详见原文博客链接地址: oracle 12c 中asm元数据是否有所变化

  5. 如何在VUE项目中添加ESLint

    如何在VUE项目中添加ESLint 1. 首先在项目的根目录下 新建 .eslintrc.js文件,其配置规则可以如下:(自己小整理了一份),所有的代码如下: // https://eslint.or ...

  6. 如何在Android Studio中添加注释模板信息?

    如何在Android Studio中添加注释模板信息? 在开发程序的时候,我们一般都会给文件自动添加上一些关于文件的注释信息,比如开发者的名字,开发的时间,开发者的联系方式等等.那么在android ...

  7. 浅析Oracle 12c中Data Guard新特性

    浅析Oracle 12c中Data Guard新特性   写在前面 无论是做Oracle运维的小伙伴还是老伙伴,想必对Oracle数据库的数据级灾备核心技术—Data Guard是再熟悉不过了!这项从 ...

  8. 为何在查询中索引未被使用 (Doc ID 1549181.1)

        To Bottom * 为何在查询中索引未被使用 (Doc ID 1549181.1) To Bottom 文档内容 用途   排错步骤   高速检查   表上是否存在索引?   索引是否应该 ...

  9. Oracle 12C 新特性之表分区或子分区的在线迁移

    Oracle 12c 中迁移表分区或子分区到不同的表空间不再需要复杂的过程.与之前版本中未分区表进行在线迁移类似,表分区或子分区可以在线或是离线迁移至一个不同的表空间.当指定了 ONLINE 语句,所 ...

随机推荐

  1. rbac结合ssm实现权限分配和管理

    RBAC(Role-Based Access Control )基于角色的访问控制. RBAC 认为权限的过程可以抽象概括为: 判断[Who 是否可以对 What 进行 How 的访问操作(Opera ...

  2. I_want_all 2019训练记录

    Team members StarHai binarycopycode Fly_White Caution 读题 数组第一维的访问速度比其他维速度快. 清空数组 乘法运算取模里面涉及到减法注意变为负数 ...

  3. 【Go入门学习】理解区分数组和切片

    一.前言 学过 Go 的都知道在 Go 语言中有四种复合数据类型:数组.切片(Slice).哈希表(Map)和结构体(Struct),而很多 Go 初学者也很容易把数组和切片弄混淆,所以要怎么把这两个 ...

  4. ARTS-S pytorch中backward函数的gradient参数作用

    导数偏导数的数学定义 参考资料1和2中对导数偏导数的定义都非常明确.导数和偏导数都是函数对自变量而言.从数学定义上讲,求导或者求偏导只有函数对自变量,其余任何情况都是错的.但是很多机器学习的资料和开源 ...

  5. 【React】在React中 JSX 代码如何转成 JS 代码?

    一.介绍 写 React 代码的朋友应该都是直接写 JSX 代码,JSX 让我们可以在 JS 中直接写 HTML 代码,可阅读性较高.本章节主要介绍 JSX 通过 babel 转换后会生成什么样式代码 ...

  6. Win32_DiskDrive 硬盘 参数说明

    Availability  --设备的状态. BytesPerSector  --在每个扇区的物理磁盘驱动器的字节数. Capabilities  --媒体访问设备的能力阵列. CapabilityD ...

  7. 【ES5 ES6】使用学习

    [ES5 ES6]使用学习 转载: ============================================================= 1.Promise 2.下划线转驼峰,驼 ...

  8. 实习生4面美团Java岗,已拿offer!(框架+多线程+集合+JVM)

    美团技术一面 1.自我介绍 说了很多遍了,很流畅捡重点介绍完. 2.问我数据结构算法好不好 挺好的(其实心还是有点虚,不过最近刷了很多题也只能壮着胆子充胖子了) 3.找到单链表的三等分点,如果单链表是 ...

  9. webpack前端简单配置

    每次用webpack创建项目时,总是要安装一堆包,还要配置一系列文件解析规则,webpack打包规则等,烦不胜烦.网上找的很多webpack配置里面很多里面的配置或者引入包都是被弃用的,因此自己总结了 ...

  10. ELK 理论小知识

    ELK 是现阶段众多企业单位都在使用的一种日志分析系统,它能够方便的为我们收集你想要的日志并且展示出来 ELK是Elasticsearch.Logstash.Kibana的简称,这三者都是开源软件,通 ...