如果一个表已经有很多分区了,现在我想在这个表的分区上建立分区索引,网上的资料都是这样的:create index MDM_AC_REL_2 on ODS_HX_MDM_AC_REL (AC_ID, AC_SEQN)
local
(
PARTITION p_init1 TABLESPACE users,PARTITION p_init2 TABLESPACE users,PARTITION p_init3 TABLESPACE users, ......
);那么我用手动在Local那个括号里写入所有分区的名字吗,这样要写很多的,有什么方法让这个分区索引自动加到所有已经存在的分区里呢?

解决方案 »

  1.   

    楼主是嫌写的麻烦啊, 那就从字典表里把分区都取出来拼串嘛。SELECT 'PARTITION '||PARTITION_NAME||' TABLESPACE users,' 
    FROM dba_segments
    WHERE SEGMENT_NAME = 'ODS_HX_MDM_AC_REL'
    AND SEGMENT_TYPE = 'TABLE PARTITION'当然,如果有现成的命令就更好了。只是我不知道有没有。。
      

  2.   

    我刚写 了一个Function 来实现这个。
      

  3.   

    http://blog.csdn.net/quanhj/archive/2011/03/21/6264565.aspx
      

  4.   


    http://blog.csdn.net/quanhj/archive/2011/03/21/6264565.aspx
    已经修改 了。