Oracle 11g创建Interval分区表
2013-07-09 14:56
155 查看
1.
interval使用之后,就不用手工增加分区,来适应数据的增长。
2.
根据年月
INTERVAL(NUMTOYMINTERVAL(1,'YEAR'))
INTERVAL(NUMTOYMINTERVAL(1,'MONTH'))
根据天 INTERVAL(NUMTODSINTERVAL(1,'DAY'))
3.
CREATE
TABLE hr.int_par(
id
number primary key,
join_date
date )
partition
by range(join_date) interval (numtoyMinterval (1,'YEAR'))
--store
in (par01,par02,par03,par04,par05,par06,par07,par08,par09,par010,par011,par012)
(
partition
inte_par1 VALUES LESS THAN (to_date('2000-9-9','YYYY-MM-DD'))
)
4.
BEGIN
FOR
i IN 1..10 LOOP
EXECUTE
IMMEDIATE 'INSERT INTO hr.int_par VALUES (:1,:2)'
USING
i, trunc(to_date('2000-9-9','YYYY-MM-DD'),'yyyy')+366*i ;
END
LOOP;
COMMIT;
END;
/
5.
TABLE_NAME PARTITION_NAME HIGH_VALUE PARTITION_POSITION
------------------------------------------------------------------------------------------------------------ ------------------- --
INT_PAR SYS_P50 TO_DATE(' 2010-09-09 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIA 11
INT_PAR SYS_P49 TO_DATE(' 2009-09-09 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIA 10
INT_PAR SYS_P48 TO_DATE(' 2008-09-09 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIA 9
INT_PAR SYS_P47 TO_DATE(' 2007-09-09 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIA 8
INT_PAR SYS_P46 TO_DATE(' 2006-09-09 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIA 7
INT_PAR SYS_P45 TO_DATE(' 2005-09-09 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIA 6
INT_PAR SYS_P44 TO_DATE(' 2004-09-09 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIA 5
INT_PAR SYS_P43 TO_DATE(' 2003-09-09 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIA 4
INT_PAR SYS_P42 TO_DATE(' 2002-09-09 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIA 3
INT_PAR SYS_P41 TO_DATE(' 2001-09-09 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIA 2
INT_PAR INTE_PAR1 TO_DATE(' 2000-09-09 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIA 1
6.
SQL> SELECT * FROM hr.int_par partition(sys_p46);
ID JOIN_DATE
---------- -----------
6 2006-1-5
SQL> SELECT * FROM hr.int_par partition(sys_p50);
ID JOIN_DATE
---------- -----------
10 2010-1-8
7.
interval使用之后,就不用手工增加分区,来适应数据的增长。
2.
根据年月
INTERVAL(NUMTOYMINTERVAL(1,'YEAR'))
INTERVAL(NUMTOYMINTERVAL(1,'MONTH'))
根据天 INTERVAL(NUMTODSINTERVAL(1,'DAY'))
3.
CREATE
TABLE hr.int_par(
id
number primary key,
join_date
date )
partition
by range(join_date) interval (numtoyMinterval (1,'YEAR'))
--store
in (par01,par02,par03,par04,par05,par06,par07,par08,par09,par010,par011,par012)
(
partition
inte_par1 VALUES LESS THAN (to_date('2000-9-9','YYYY-MM-DD'))
)
4.
BEGIN
FOR
i IN 1..10 LOOP
EXECUTE
IMMEDIATE 'INSERT INTO hr.int_par VALUES (:1,:2)'
USING
i, trunc(to_date('2000-9-9','YYYY-MM-DD'),'yyyy')+366*i ;
END
LOOP;
COMMIT;
END;
/
5.
TABLE_NAME PARTITION_NAME HIGH_VALUE PARTITION_POSITION
------------------------------------------------------------------------------------------------------------ ------------------- --
INT_PAR SYS_P50 TO_DATE(' 2010-09-09 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIA 11
INT_PAR SYS_P49 TO_DATE(' 2009-09-09 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIA 10
INT_PAR SYS_P48 TO_DATE(' 2008-09-09 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIA 9
INT_PAR SYS_P47 TO_DATE(' 2007-09-09 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIA 8
INT_PAR SYS_P46 TO_DATE(' 2006-09-09 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIA 7
INT_PAR SYS_P45 TO_DATE(' 2005-09-09 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIA 6
INT_PAR SYS_P44 TO_DATE(' 2004-09-09 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIA 5
INT_PAR SYS_P43 TO_DATE(' 2003-09-09 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIA 4
INT_PAR SYS_P42 TO_DATE(' 2002-09-09 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIA 3
INT_PAR SYS_P41 TO_DATE(' 2001-09-09 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIA 2
INT_PAR INTE_PAR1 TO_DATE(' 2000-09-09 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIA 1
6.
SQL> SELECT * FROM hr.int_par partition(sys_p46);
ID JOIN_DATE
---------- -----------
6 2006-1-5
SQL> SELECT * FROM hr.int_par partition(sys_p50);
ID JOIN_DATE
---------- -----------
10 2010-1-8
7.
相关文章推荐
- oracle 11g for windows 恢复目录的创建
- ORACLE 11g 创建数据库时 Enterprise Manager配置失败的解决办法 无法打开OEM的解决办法
- Oracle 11g ASM:如何在 ASMCMD 命令行工具中创建 Oracle ACFS 文件系统
- 手动创建数据库的整体流程 Oracle 11g
- Oracle 11g创建本地数据库
- Oracle 11g用户创建、授权和导入dmp文件
- Oracle 10g创建DBLink接连11g问题
- Linux 安装 Oracle 11g——静默创建数据库(RAC)
- Oracle 11g Data Guard 使用duplicate from active database 创建 standby database
- oracle-11g创建用户名的时候默认区分大小写
- BI入门之而Oracle BIEE (Business Intelligence) 11g 11.1.1.6.0 学习(3)创建一个简单的分析
- Oracle 11g 学习六:表的创建及管理
- OWB错误集锦——OWB 11g创建Oracle模块编辑Location报ORA-00933
- 『ORACLE』 创建表(11g)
- 手动创建Oracle 11g数据库(转载)
- Oracle 11g 第九章知识点总结——创建和管理表
- Oracle 11G R2 在windows server 2008 64位安装时提示:无法在windows "开始"菜单或桌面上创建项
- 使用DUPLICATE 方式创建ORACLE 11G DG备库环境
- oracle 11g 创建 job 20
- Oracle 11G R2 在windows server 2008 64位安装时提示:无法在windows "开始"菜单或桌面上创建项