Oracle自学笔记——分区表中添加分区
2014-09-15 17:08
405 查看
1.先创建一个分区表test(没有MAXVALUE分区)
HR@PROD>create table hr.test(
2 id number,
3 name varchar2(20))
4 PARTITION BY RANGE (id)
5 (PARTITION p1 VALUES LESS THAN (10),
6 PARTITION p2 VALUES LESS THAN (20),
7 PARTITION p3 VALUES LESS THAN (30)
8 );
Table created.
2.查看test分区表的分区信息
HR@PROD>select TABLE_NAME,PARTITION_NAME
2 from user_tab_partitions
3 where table_name='TEST';
TABLE_NAME PARTITION_NAME
------------------------------ ------------------------------
TEST P1
TEST P2
TEST P3
3.添加分区
HR@PROD>ALTER TABLE hr.test ADD PARTITION p4 VALUES LESS THAN (40);
Table altered.
4.查看test分区表的分区信息,发现分区已成功添加
HR@PROD>select TABLE_NAME,PARTITION_NAME
2 from user_tab_partitions
3 where table_name='TEST';
TABLE_NAME PARTITION_NAME
------------------------------ ------------------------------
TEST P1
TEST P2
TEST P3
TEST P4
5.这时,再创建一个有maxvalue分区的分区表test1
HR@PROD>create table hr.test1(
2 id number,
3 name varchar2(20))
4 PARTITION BY RANGE (id)
5 (PARTITION p1 VALUES LESS THAN (10),
6 PARTITION p2 VALUES LESS THAN (20),
7 PARTITION p3 VALUES LESS THAN (30),
8 PARTITION p_max VALUES LESS THAN (MAXVALUE)
9 );
Table created.
6.查看test1的分区信息
HR@PROD>select TABLE_NAME,PARTITION_NAME
2 from user_tab_partitions
3 where table_name='TEST1';
TABLE_NAME PARTITION_NAME
------------------------------ ------------------------------
TEST1 P1
TEST1 P2
TEST1 P3
TEST1 P_MAX
7.往test1中添加分区,发现add partition报错
HR@PROD>ALTER TABLE hr.test1 ADD PARTITION p4 VALUES LESS THAN (40);
ALTER TABLE hr.test1 ADD PARTITION p4 VALUES LESS THAN (40)
*
ERROR at line 1:
ORA-14074: partition bound must collate higher than that of the last partition
8.使用split语句添加分区
HR@PROD>ALTER TABLE hr.test1 SPLIT PARTITION p_max AT (40) INTO (PARTITION p4,PARTITION p_max);
Table altered.
9.查看分区表test1的分区信息
HR@PROD>select TABLE_NAME,PARTITION_NAME
2 from user_tab_partitions
3 where table_name='TEST1';
TABLE_NAME PARTITION_NAME
------------------------------ ------------------------------
TEST1 P1
TEST1 P2
TEST1 P3
TEST1 P4
TEST1 P_MAX
HR@PROD>create table hr.test(
2 id number,
3 name varchar2(20))
4 PARTITION BY RANGE (id)
5 (PARTITION p1 VALUES LESS THAN (10),
6 PARTITION p2 VALUES LESS THAN (20),
7 PARTITION p3 VALUES LESS THAN (30)
8 );
Table created.
2.查看test分区表的分区信息
HR@PROD>select TABLE_NAME,PARTITION_NAME
2 from user_tab_partitions
3 where table_name='TEST';
TABLE_NAME PARTITION_NAME
------------------------------ ------------------------------
TEST P1
TEST P2
TEST P3
3.添加分区
HR@PROD>ALTER TABLE hr.test ADD PARTITION p4 VALUES LESS THAN (40);
Table altered.
4.查看test分区表的分区信息,发现分区已成功添加
HR@PROD>select TABLE_NAME,PARTITION_NAME
2 from user_tab_partitions
3 where table_name='TEST';
TABLE_NAME PARTITION_NAME
------------------------------ ------------------------------
TEST P1
TEST P2
TEST P3
TEST P4
5.这时,再创建一个有maxvalue分区的分区表test1
HR@PROD>create table hr.test1(
2 id number,
3 name varchar2(20))
4 PARTITION BY RANGE (id)
5 (PARTITION p1 VALUES LESS THAN (10),
6 PARTITION p2 VALUES LESS THAN (20),
7 PARTITION p3 VALUES LESS THAN (30),
8 PARTITION p_max VALUES LESS THAN (MAXVALUE)
9 );
Table created.
6.查看test1的分区信息
HR@PROD>select TABLE_NAME,PARTITION_NAME
2 from user_tab_partitions
3 where table_name='TEST1';
TABLE_NAME PARTITION_NAME
------------------------------ ------------------------------
TEST1 P1
TEST1 P2
TEST1 P3
TEST1 P_MAX
7.往test1中添加分区,发现add partition报错
HR@PROD>ALTER TABLE hr.test1 ADD PARTITION p4 VALUES LESS THAN (40);
ALTER TABLE hr.test1 ADD PARTITION p4 VALUES LESS THAN (40)
*
ERROR at line 1:
ORA-14074: partition bound must collate higher than that of the last partition
8.使用split语句添加分区
HR@PROD>ALTER TABLE hr.test1 SPLIT PARTITION p_max AT (40) INTO (PARTITION p4,PARTITION p_max);
Table altered.
9.查看分区表test1的分区信息
HR@PROD>select TABLE_NAME,PARTITION_NAME
2 from user_tab_partitions
3 where table_name='TEST1';
TABLE_NAME PARTITION_NAME
------------------------------ ------------------------------
TEST1 P1
TEST1 P2
TEST1 P3
TEST1 P4
TEST1 P_MAX
相关文章推荐
- oracle 自学笔记
- 引用 oracle定时添加或删除分区表的分区
- phonegap3.1.0自学笔记02_添加插件
- oracle自学笔记--flashback特性
- Oracle自学笔记---在linux环境下转移数据文件
- oracle定时添加或删除分区表的分区
- oracle-分区(笔记)
- C# MVC 自学笔记—7 将新字段添加到的电影模型和表
- C# MVC 自学笔记—4 添加视图
- oracle 添加表分区和索引分区,修改索引分区默认表空间
- QT6410移植linux-2.6.39 笔记(二)-添加NANDFLASH分区
- ORACLE自学笔记
- Oracle Hint用法自学笔记
- C# MVC 自学笔记—8 将新字段添加到的电影模型和表
- C# MVC 自学笔记—4 添加视图
- 【Android自学笔记之二】为自己的android程序添加menu菜单
- 【Android自学笔记】为Android应用程序添加Rate功能
- oracle已存在的表添加新分区的方法
- oracle range分区表已经有了MAXVALUE 分区,如何添加分区?要不能删除MAXVALUE分区里的数据,不影响在线应用。