我们在哪里可以找到Oracle字典索引分区的默认属性?

时间:2015-08-16 13:23:04

标签: database oracle

假设我有一些带有范围分区,范围子分区和一些与这些子分区对应的本地索引的表。例如:

CREATE TABLE TAB 
(
  TAB_KEY1 NUMBER 
, TAB_KEY2 NUMBER 
, TAB_VAL NUMBER NOT NULL 
) 
TABLESPACE TBS_D_1 
PARTITION BY RANGE (TAB_KEY1) 
SUBPARTITION BY RANGE (TAB_KEY2) 
(
  PARTITION PARTITION_1000 VALUES LESS THAN (1001) 
  (
    SUBPARTITION PARTITION_1000_1000 VALUES LESS THAN (1001)  
  )  
);

CREATE UNIQUE INDEX TAB_I1 ON TAB (TAB_KEY1, TAB_KEY2) 
LOCAL 
TABLESPACE TBS_I_1;

当我为整个索引设置默认表空间时:

ALTER INDEX TAB_I1 MODIFY DEFAULT ATTRIBUTES TABLESPACE TBS_I_2;

我能够看到这个值:

SELECT a.def_tablespace_name 
FROM all_part_indexes a 
WHERE a.index_name = 'TAB_I1';

但是当我只为一个分区设置默认表空间时:

ALTER INDEX TAB_I1 
MODIFY DEFAULT ATTRIBUTES FOR PARTITION partition_1000 TABLESPACE TBS_I_3;

我无法在Oracle词典中的任何位置找到此默认表空间,但此值在分割表子分区时发生。

1 个答案:

答案 0 :(得分:3)

使用ALL_IND_PARTITIONS.TABLESPACE_NAME代替ALL_PART_INDEXES.DEF_TABLESPACE_NAME