暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle 我可以在子分区中自动列出用户吗?

askTom 2018-05-23
400

问题描述

亲爱的,

我有一个表,其中包含两列,一列用于年,另一列用于月。我需要根据年份和月份对该表进行分区,其中年份代表分区,在该月份下代表该子分区。我需要的是使自动列表分区按年份,然后自动按月份划分每年下的分区,以便每年分区将有12个月的子分区。可以使用分区和子分区的自动列表来完成此操作吗?

drop table t10 purge;
CREATE TABLE t10 (
  id           NUMBER,
  description  VARCHAR2(50),
  year number,
  month number,
  created_date DATE
  );

复制


alter table t10 modify 
partition by list  (year) automatic
subpartition by list (month) automatic 
(partition Y_2015 values(2015))
(subpartition M_01 values (01))
online;
复制


我收到了这个错误消息
第1行的错误:
ORA-14179: 在此上下文中指定了不受支持的分区方法。

对于这种情况,什么是完美的解决方案?
提前感谢
奥萨马


专家解答

没有。在子分区级别不支持自动列表分区。

但是我不认为这里有这个必要。你知道一年有12个月!

因此,您可以创建一个子分区模板,列出每个月的分区:

CREATE TABLE t10 (
  id           NUMBER,
  description  VARCHAR2(50),
  year number,
  month number,
  created_date DATE
) partition by list (year) automatic
  subpartition by list (month)  
  subpartition template (
    subpartition M_01 values (01),
    subpartition M_02 values (02),
    subpartition M_03 values (03),
    subpartition M_04 values (04),
    subpartition M_05 values (05),
    subpartition M_06 values (06),
    subpartition M_07 values (07),
    subpartition M_08 values (08),
    subpartition M_09 values (09),
    subpartition M_10 values (10),
    subpartition M_11 values (11),
    subpartition M_12 values (12) 
) (
  partition Y_2015 values(2015)
);
复制


然后,当您插入将创建一个新的顶级分区的行时,您将获得所有月份:

insert into t10 values (1, 'test', 2016, 3, sysdate);

select partition_name, subpartition_name, high_value 
from   user_tab_subpartitions
where  table_name = 'T10';

PARTITION_NAME   SUBPARTITION_NAME   HIGH_VALUE   
Y_2015           Y_2015_M_01         01           
Y_2015           Y_2015_M_02         02           
Y_2015           Y_2015_M_03         03           
Y_2015           Y_2015_M_04         04           
Y_2015           Y_2015_M_05         05           
Y_2015           Y_2015_M_06         06           
Y_2015           Y_2015_M_07         07           
Y_2015           Y_2015_M_08         08           
Y_2015           Y_2015_M_09         09           
Y_2015           Y_2015_M_10         10           
Y_2015           Y_2015_M_11         11           
Y_2015           Y_2015_M_12         12           
SYS_P2191        SYS_SUBP2179        01           
SYS_P2191        SYS_SUBP2180        02           
SYS_P2191        SYS_SUBP2181        03           
SYS_P2191        SYS_SUBP2182        04           
SYS_P2191        SYS_SUBP2183        05           
SYS_P2191        SYS_SUBP2184        06           
SYS_P2191        SYS_SUBP2185        07           
SYS_P2191        SYS_SUBP2186        08           
SYS_P2191        SYS_SUBP2187        09           
SYS_P2191        SYS_SUBP2188        10           
SYS_P2191        SYS_SUBP2189        11           
SYS_P2191        SYS_SUBP2190        12
复制

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论