转载自:http://www.2cto.com/database/201309/244285.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
createtableTMP_LXQ_1
(
PROPOSALNO VARCHAR2(22),
STARTDATE
DATE
)
partitionbyrange(STARTDATE) (
partitionpart_t01values less than(to_date(
'2008-01-01'
,
'yyyy-mm-dd'
)) ,
partitionpart_t02values less than(to_date(
'2009-01-01'
,
'yyyy-mm-dd'
)) ,
partitionpart_t03values less than(to_date(
'2010-01-01'
,
'yyyy-mm-dd'
)) ,
partitionpart_t04values less than(to_date(
'2011-01-01'
,
'yyyy-mm-dd'
)) ,
partitionpart_t05values less than(to_date(
'2012-01-01'
,
'yyyy-mm-dd'
)) ,
partitionpart_t06values less than(to_date(
'2013-01-01'
,
'yyyy-mm-dd'
)) ,
partitionpart_t07values less than(maxvalue)
);
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
createtable TMP_LXQ_1
(
proposalnovarchar2(22),
startdatedate
)
partitionby range(STARTDATE)
interval(numtoyminterval(1,
'year'
))(
partitionpart_t01
values
less than(to_date(
'2008-01-01'
,
'yyyy-mm-dd'
)) ,
partitionpart_t02
values
less than(to_date(
'2009-01-01'
,
'yyyy-mm-dd'
)) ,
partitionpart_t03
values
less than(to_date(
'2010-01-01'
,
'yyyy-mm-dd'
)) ,
partitionpart_t04
values
less than(to_date(
'2011-01-01'
,
'yyyy-mm-dd'
)) ,
partitionpart_t05
values
less than(to_date(
'2012-01-01'
,
'yyyy-mm-dd'
)) ,
partitionpart_t06
values
less than(to_date(
'2013-01-01'
,
'yyyy-mm-dd'
))
);
|
alter table t_range rename partition SYS_P21 to p_2014_02_01
alter table t_range set STORE IN (tablespace1, tablespace2, tablespace3);
这3个表空间,分区会循环分配到这3个表空间。
备注:
显示分区表信息
显示数据库所有分区表的信息:DBA_PART_TABLES
显示当前用户可访问的所有分区表信息:ALL_PART_TABLES
显示当前用户所有分区表的信息:USER_PART_TABLES
显示表分区信息 显示数据库所有分区表的详细分区信息:DBA_TAB_PARTITIONS
显示当前用户可访问的所有分区表的详细分区信息:ALL_TAB_PARTITIONS
显示当前用户所有分区表的详细分区信息:USER_TAB_PARTITIONS
显示子分区信息 显示数据库所有组合分区表的子分区信息:DBA_TAB_SUBPARTITIONS
显示当前用户可访问的所有组合分区表的子分区信息:ALL_TAB_SUBPARTITIONS
显示当前用户所有组合分区表的子分区信息:USER_TAB_SUBPARTITIONS
显示分区列 显示数据库所有分区表的分区列信息:DBA_PART_KEY_COLUMNS
显示当前用户可访问的所有分区表的分区列信息:ALL_PART_KEY_COLUMNS
显示当前用户所有分区表的分区列信息:USER_PART_KEY_COLUMNS
显示子分区列 显示数据库所有分区表的子分区列信息:DBA_SUBPART_KEY_COLUMNS
显示当前用户可访问的所有分区表的子分区列信息:ALL_SUBPART_KEY_COLUMNS
显示当前用户所有分区表的子分区列信息:USER_SUBPART_KEY_COLUMNS
查看数据库中所有数据文件的名称位置,所属表空间,以及大小等等 dba_data_files
---------------------------------------------------------------------------------------------------
select * from user_tables a where a.partitioned='YES'
如果不想使用以上的方法动态增加表的分区,就需要用下面的方式手工增加分区:
1:增加tablespace
create tablespace 空间_2019
datafile '/oradata/空间_2019.dbf' size 1500M
DEFAULT STORAGE (
initial 64K
next 1M
minextents 1
maxextents unlimited
);
如果不知道如何设置tablespace存放地址,可以查看select * from dba_data_files; 参照写个地址
2:增加表分区
alter table POSITION_GPSONE_YEAR add partition PART_2013 values less than ('2014') tablespace TBSERVER;
表名:POSITION_GPSONE_YEAR
分区名:PART_2013
分区字段的值要小于该值:2014
这个表所在的表空间:TBSERVER