假设我有一些带有范围分区,范围子分区和一些与这些子分区对应的本地索引的表。例如:
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词典中的任何位置找到此默认表空间,但此值在分割表子分区时发生。
答案 0 :(得分:3)
使用ALL_IND_PARTITIONS.TABLESPACE_NAME
代替ALL_PART_INDEXES.DEF_TABLESPACE_NAME
。