oracle生成table space和partition 的方法小结

来源:互联网 发布:js菜单栏滑动 编辑:程序博客网 时间:2024/06/08 18:33

       /*第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' )

 

 

 

原创粉丝点击