oracle 11g 如何创建、修改、删除list-list组合分区
2013-07-30 13:11
501 查看
Oracle11g在分区方面做了很大的提高,不但新增了4种复合分区类型,还增加了虚拟列分区、系统分区、INTERVAL分区等功能。
9i开始,Oracle就包括了2种复合分区,RANGE-HASH和RANGE-LIST。在11g,Oracle一下就提供了4种复合分区:RANGE-RANGE、LIST-RANGE、LIST-HASH和LIST-LIST。
oracle 11g创建、修改、删除list-list组合分区命令如下:
1、--创建list-list组合分区表
create table MYPARTTABLE
(
ID number(10),
NAME varchar2(256),
PROVINCECODE varchar2(2),
AREACODE number(6)
)
partition by list (provincecode)
subpartition by list(areacode)
(
partition MYPARTTABLE_FJ values ('FJ')
(
subpartition MYPARTTABLE_FJ_590 values(590),
subpartition MYPARTTABLE_FJ_591 values(591),
subpartition MYPARTTABLE_FJ_592 values(592)
)
,
partition MYPARTTABLE_XZ values ('XZ')
(
subpartition MYPARTTABLE_XZ_5400 values(5400),
subpartition MYPARTTABLE_XZ_891 values(891),
subpartition MYPARTTABLE_XZ_892 values(892)
)
);
2、--新增一个list-list分区
alter table MYPARTTABLE add partition MYPARTTABLE_LN values('LN');--不带子分区
alter table MYPARTTABLE add partition MYPARTTABLE_LN values('LN')
(
subpartition MYPARTTABLE_LN_2100 values(2100),
subpartition MYPARTTABLE_LN_24 values(24)
);--带子分区
3、--新增一个子分区
alter table MYPARTTABLE modify partition MYPARTTABLE_LN add subpartition MYPARTTABLE_LN_412 values(412);
4、--新增多个分区/子分区
摘自:http://www.searchdatabase.com.cn/showcontent_74959.htm
在Oracle 12c R1之前,一次只可能添加一个新分区到一个已存在的分区表。要添加一个以上的新分区,需要对每个新分区都单独执行一次ALTER TABLE ADD PARTITION语句。
而Oracle 12c只需要使用一条单独的ALTER TABLE ADD PARTITION 命令就可以添加多个新分区,这增加了数据库灵活性。
SQL> alter table MYPARTTABLE modify partition MYPARTTABLE_LN add subpartition MYPARTTABLE_LN_412 values(412),subpartition MYPARTTABLE_LN_414 values(414);
alter table MYPARTTABLE modify partition MYPARTTABLE_LN add subpartition MYPARTTABLE_LN_412 values(412),subpartition MYPARTTABLE_LN_414 values(414)
ORA-14158: 子分区说明太多
5、--删除非唯一的list-list组合分区
alter table MYPARTTABLE drop partition MYPARTTABLE_LN;
alter table MYPARTTABLE drop partition MYPARTTABLE_FJ;
6、--删除唯一的list-list组合分区
alter table MYPARTTABLE drop partition MYPARTTABLE_XZ;
ORA-14083: 无法删除分区表的唯一分区
7、--删除非唯一的子分区
alter table MYPARTTABLE drop subpartition MYPARTTABLE_LN_24;
alter table MYPARTTABLE drop subpartition MYPARTTABLE_LN_412;
8、--删除唯一的子分区
alter table MYPARTTABLE drop subpartition MYPARTTABLE_LN_2100;
ORA-14629: 无法删除一个分区中唯一的子分区
9i开始,Oracle就包括了2种复合分区,RANGE-HASH和RANGE-LIST。在11g,Oracle一下就提供了4种复合分区:RANGE-RANGE、LIST-RANGE、LIST-HASH和LIST-LIST。
oracle 11g创建、修改、删除list-list组合分区命令如下:
1、--创建list-list组合分区表
create table MYPARTTABLE
(
ID number(10),
NAME varchar2(256),
PROVINCECODE varchar2(2),
AREACODE number(6)
)
partition by list (provincecode)
subpartition by list(areacode)
(
partition MYPARTTABLE_FJ values ('FJ')
(
subpartition MYPARTTABLE_FJ_590 values(590),
subpartition MYPARTTABLE_FJ_591 values(591),
subpartition MYPARTTABLE_FJ_592 values(592)
)
,
partition MYPARTTABLE_XZ values ('XZ')
(
subpartition MYPARTTABLE_XZ_5400 values(5400),
subpartition MYPARTTABLE_XZ_891 values(891),
subpartition MYPARTTABLE_XZ_892 values(892)
)
);
2、--新增一个list-list分区
alter table MYPARTTABLE add partition MYPARTTABLE_LN values('LN');--不带子分区
alter table MYPARTTABLE add partition MYPARTTABLE_LN values('LN')
(
subpartition MYPARTTABLE_LN_2100 values(2100),
subpartition MYPARTTABLE_LN_24 values(24)
);--带子分区
3、--新增一个子分区
alter table MYPARTTABLE modify partition MYPARTTABLE_LN add subpartition MYPARTTABLE_LN_412 values(412);
4、--新增多个分区/子分区
摘自:http://www.searchdatabase.com.cn/showcontent_74959.htm
在Oracle 12c R1之前,一次只可能添加一个新分区到一个已存在的分区表。要添加一个以上的新分区,需要对每个新分区都单独执行一次ALTER TABLE ADD PARTITION语句。
而Oracle 12c只需要使用一条单独的ALTER TABLE ADD PARTITION 命令就可以添加多个新分区,这增加了数据库灵活性。
SQL> alter table MYPARTTABLE modify partition MYPARTTABLE_LN add subpartition MYPARTTABLE_LN_412 values(412),subpartition MYPARTTABLE_LN_414 values(414);
alter table MYPARTTABLE modify partition MYPARTTABLE_LN add subpartition MYPARTTABLE_LN_412 values(412),subpartition MYPARTTABLE_LN_414 values(414)
ORA-14158: 子分区说明太多
5、--删除非唯一的list-list组合分区
alter table MYPARTTABLE drop partition MYPARTTABLE_LN;
alter table MYPARTTABLE drop partition MYPARTTABLE_FJ;
6、--删除唯一的list-list组合分区
alter table MYPARTTABLE drop partition MYPARTTABLE_XZ;
ORA-14083: 无法删除分区表的唯一分区
7、--删除非唯一的子分区
alter table MYPARTTABLE drop subpartition MYPARTTABLE_LN_24;
alter table MYPARTTABLE drop subpartition MYPARTTABLE_LN_412;
8、--删除唯一的子分区
alter table MYPARTTABLE drop subpartition MYPARTTABLE_LN_2100;
ORA-14629: 无法删除一个分区中唯一的子分区
相关文章推荐
- Oracle序列(Sequence)创建、使用、修改、删除
- oracle 11g 数据库, 创建表空间, 修改表空间, 创建用户,并将用户分配给表空间,将dmp
- Oracle 11g RAC 添加删除日志组(修改日志组大小)
- JAVA 如何创建\删除\修改\复制目录及文件
- QT中如何实现XML文件的创建、增加、修改、删除功能。
- BASIS-如何删除SAP在用户修改表结构时创建的临时表
- QT中如何实现XML文件的创建、增加、修改、删除功能。
- 如何在Oracle中增加修改删除字段
- oracle创建用户,修改用户,删除用户等关于用户的
- 限制oracle用户创建、删除、修改用户对象
- Oracle 11g创建、查看、删除dblink
- Oracle 11g 如何创建数据库
- Oracle 11g 通过间隔分区实现按月创建表分区
- 如何手动删除Oracle 11g数据库
- 表管理(数据类型、创建/修改表、添加/修改/删除数据、数据查询) 1.Oracle表的管理
- JAVA 如何创建/删除/修改/复制目录及文件
- Oracle的学习二:表管理(数据类型、创建/修改表、添加/修改/删除数据、数据查询)
- Oracle中创建、修改、删除序列
- oracle创建数据表,修改,删除数据表
- JAVA 如何创建/删除/修改/复制目录及文件