/*第1步:创建临时表空间 */
create temporary tablespace user_temp
tempfile 'D:\oracle\oradata\Oracle9i\user_temp.dbf'
size 50m
autoextend on
next 50m maxsize 20480m
extent management local;
/*第2步:创建数据表空间 */
create tablespace user_data
logging
datafile 'D:\oracle\oradata\Oracle9i\user_data.dbf'
size 50m
autoextend on
next 50m maxsize 20480m
extent management local;
/*第3步:给用户授予权限 */
grant connect,resource,dba to username;
(如果需要创建新用户,并分配table space,
create user username identified by password
default tablespace user_data
temporary tablespace user_temp;
创建完用户再去授予权限。
)
/*create table,并将partition分配到table space */
CREATE TABLE CUSTOMER(CUSTOMER_ID NUMBER NOT NULL PRIMARY KEY,FIRST_NAME VARCHAR2(30) NOT NULL,LAST_NAME VARCHAR2(30) NOT NULL,PHONE VARCHAR2(15) NOT NULL,EMAIL VARCHAR2(80),STATUS CHAR(1))
PARTITION BY RANGE (CUSTOMER_ID)
(PARTITION CUS_PART1 VALUES LESS THAN (100000) TABLESPACE user_data,PARTITION CUS_PART2 VALUES LESS THAN (200000) TABLESPACE user_data2)
/*查询不同分区内容范例 */
select count(*) cn from CUSTOMER PARTITION (CUS_PART1)
/*ORACLE 11g 利用interval新特性自动生成分区partition方法*/
create table day_part (c1 number,c3 date)
partition by range(c3)interval(numtodsinterval (1,'day'))
(partition part1 values less than (to_date('2013-07-01','YYYY-MM-DD')),
partition part2 values less than (to_date('2013-07-02','YYYY-MM-DD')));
其中根据的插入的时间会自动生成并分配到不同的partition。
要注意的是,其只会分配07月的日期。
如果你insert进去2013-06-01,这个会被分配到一个default的partition中,例如以上语句的part1.
ps:
numtodsinterval (1,'day')表示的是一天。在oracle中 天,时的表示都是 numtodsinterval
而年,月的表示是 numtoyminterval如: numtoyminterval( 1, 'MONTH' )