请教下面SQL的语法如何理解,新建的分区的rule是怎么确定的; 和普通的先创建分区再删除分区有何不同?ALTER TABLE Tbl_date SPLIT PARTITION PART_20100903 AT ( to_date('2010-09-02','YYYY-MM-DD') )   
INTO (PARTITION PART_20100901,PARTITION PART_20100903)

解决方案 »

  1.   


    看上去是把分区表PART_20100903 分为两个分区PART_20100901,PART_20100903不建议 有风险
      

  2.   

    给个例子试试:先创建一个分区表,只有一个分区part_20100930CREATE TABLE Tbl_date (a varchar2(10), b date)
    partition by range(b)
    (partition part_20100930 values less than(to_date('2010-09-30','yyyy-mm-dd'))
    );查询分区情况:
    select table_name, partitioning_type,PARTITION_COUNT,status from user_part_tables;
    select table_name, partition_name, partition_position from user_tab_partitions;把上面的分区分开,
    ALTER TABLE Tbl_date SPLIT PARTITION PART_20100930 AT ( to_date('2010-09-02','YYYY-MM-DD') )   
    INTO (PARTITION PART_20100901,PARTITION PART_20100903);再查询分区情况
    查询分区情况:
    select table_name, partitioning_type,PARTITION_COUNT,status from user_part_tables;
    select table_name, partition_name, partition_position from user_tab_partitions;
      

  3.   

    to zcs_1:像这样做过操作后,分区PART_20100901和PART_20100903的值如何划分的呢?
      

  4.   

    如果新建的分区比最大的分区少,就需要拆分分区用split partition  
      

  5.   


    楼主可以执行这个查询,看high_value数据
    select partition_name, high_value from user_tab_partitions where table_name='TBL_DATE'
      

  6.   

    按普通方法,你要先建个表把要删除分区的数据存储起来,然后删除分区,再创建分区,然后把数据导入.很繁琐.
    split的话直接执行语句就可以了,不需要折腾数据.只是要注意索引重建.