怎样删除散列分区表指定的某个分区

解决方案 »

  1.   

    alter table 分区表名 drop partition 分区名;
      

  2.   


    --散列分区不能删除,只能从组:
    --使用命令:
    alter table table_name COALESCE partition;
    --每执行一次,减少一个散列分区:
    --下面是实例:
    SQL> create table emp (
      2         empno number(4),
      3       ename varchar2(30),
      4       sal number)
      5  partition by hash (empno)
      6  partitions 8 ;
     
    Table created
     
    SQL> select table_name,partition_name
      2  from user_tab_partitions
      3  where table_name=upper('emp')
      4  /
     
    TABLE_NAME                     PARTITION_NAME
    ------------------------------ ------------------------------
    EMP                            SYS_P101
    EMP                            SYS_P102
    EMP                            SYS_P103
    EMP                            SYS_P104
    EMP                            SYS_P105
    EMP                            SYS_P106
    EMP                            SYS_P107
    EMP                            SYS_P108
     
    8 rows selected
    SQL> alter table emp coalesce partition;
    SQL> select table_name,partition_name
      2  from user_tab_partitions
      3  where table_name=upper('emp')
      4  /
     
    TABLE_NAME                     PARTITION_NAME
    ------------------------------ ------------------------------
    EMP                            SYS_P101
    EMP                            SYS_P102
    EMP                            SYS_P103
    EMP                            SYS_P104
    EMP                            SYS_P105
    EMP                            SYS_P106
    EMP                            SYS_P107
     
    7 rows selected
    SQL> alter table emp coalesce partition;
     
    Table altered
     
    SQL> select table_name,partition_name
      2  from user_tab_partitions
      3  where table_name=upper('emp')
      4  /
     
    TABLE_NAME                     PARTITION_NAME
    ------------------------------ ------------------------------
    EMP                            SYS_P101
    EMP                            SYS_P102
    EMP                            SYS_P103
    EMP                            SYS_P104
    EMP                            SYS_P105
    EMP                            SYS_P106
     
    6 rows selected
      

  3.   


    --如果是复合子分区:
    alter table table_name modify partition partition_name coalesce subpartition;
      

  4.   

     三楼
    你的这个删除不能删除指定的某个散列分区,只能从后面进行删除
    我要的是删除“指定”的某个散列分区,
    比如 我有3个散列分区h_1,h_2,h_3我要删除的是h_2分区