在相关文档中看到oracle9i的Release 2这个版本中增加了一种分区即组合范围--列表分区,也就是先可以对表进行范围分区,然后对每个分区进行列表分区,我想问一问有没有人使用过这种分区,它的语法结构是怎样的?我查了很多资料都没有找到,除了这种方法,现在我的表中要求按“发生日期”和“地区代码”两个字段进行分区,还有没有更好的方法进行?我尝试过使多列的用范围分区进行,可是发现它只对排在前面的那个字段起作用,比如说我按“发生日期”和“地区代码”进行分区,它只给我按“发生日期”进行分区了,而并未按“地区代码”进行分区,如果按“地区代码”和“发生日期”进行分区,它只按“地区代码”字段进行了分区,请教各位,可以尽快给我个答复!先谢谢啦

解决方案 »

  1.   

    你的概念好像有点混,oracle提供了四种分区方式,包括range,hash,composite和list,前三种在ora8i中就已经出现了,list是9i中才看到的。
    你前面说的是组合分区,就是在分区中使用范围,在子分区中使用散列,例如:
    create table t1(
    a int,
    b int)
    partition by range(a)
    subpartition by hash(b)
    subpartitions 5 
    (partition part1 values less than (10),
     partition part2 values less than (maxvalue));而list分区中,只是将离散的列值映射到各个分区中,如:
    create table t1(
    a char(1),
    b int)
    partition by list(a)
    (partition part1 values ('a','b','c'),
     partition part2 values ('d','e','f')); 
      

  2.   

    你说的大概念的方向是正确的,可是我在<ORACLE9I分区>一书中看到这样一句话组合范围-列表分区,它是组合分区的一种,它只适用于ORACLE9I RELEASE2版本,它是先对表进行范围分区,然后对每个分区进行列表分区。
      

  3.   

    半个月?真实有耐力,pfpf,怎么解决的,说出来让大家也学学