请问各位,在oracle9i中如何实现分区按月存储?
也就是说,不用管年份的那种。比如今年1-12月它会自己建,到了明年,就又从一月开始存储。
最终能够达到动态的保存最近12个月的记录。

解决方案 »

  1.   

    但我发现partition by 指定的变量必须是事先自己写好的啊。
    而且发现只用月来to_date似乎达不到效果??
      

  2.   

    不知道你说的是不是这个意思 
      在表里新建一个按月分区字段  分区代码
    partition by range (分区字段)
    (
      partition P2 values less than ('02')
        tablespace 表空间  
        pctfree 10 
        pctused 75
        initrans 4
        maxtrans 255
        storage
        (
          initial 4M
          next 1M
          minextents 1
          maxextents unlimited
          pctincrease 0
        ),
    partition P3 values less than ('03')
        tablespace 表空间  
        pctfree 10 
        pctused 75
        initrans 4
        maxtrans 255
        storage
        (
          initial 4M
          next 1M
          minextents 1
          maxextents unlimited
          pctincrease 0
        ),....以此类推
      partition P13 values less than (MAXVALUE)
        tablespace 表空间
        pctfree 10
        pctused 75
        initrans 4
        maxtrans 255
        storage
        (
          initial 4M
          next 1M
          minextents 1
          maxextents unlimited
          pctincrease 0
        )
    );
      

  3.   

    楼主想创建一个分区能动态保存最近12个月的记录,我唯一能相到的办法就是写一个存储过程添加新增的分区和删除旧的分区,然后再做一个JOB来调度。
      

  4.   

    自已写JOB,动态地加分区,动态地删除分区
      

  5.   

    可以用alter table t add partition part_x values less than (...);这样的语法来为表加分区
    删除分区:
    alter table t drop partition part_x; 
      

  6.   

    还是自己用JDBC的方式比较可控!!尽管麻烦点!