时间戳列上的 oracle 范围分区

oracle range partition on timestampe column

这就是我为创建 table 在 createTime 字段上使用每日分区所写的内容

create table T_ASYNCFCMNOTIFICATION (
    C_ID NUMBER(34, 0) not null,
    C_CREATETIME timestamp not null,
    C_DEVICETOKEN varchar2(255 char),
    F_DATA NUMBER(34, 0),
    primary key (C_ID)
)
   PARTITION BY RANGE (C_CREATETIME)
INTERVAL(NUMTOYMINTERVAL(1, 'day'))
(
 PARTITION T_ASYNCFCMNOTIFICATION_P1 VALUES LESS THAN (TO_DATE('01-11-2020', 'DD-MM-YYYY'))
 );

但是当我 运行 我的查询时我遇到了这个错误:

错误报告 - ORA-14752: 区间表达式不是正确类型的常量 14752. 00000 - “区间表达式不是正确类型的常量” *原因:您试图使用非常量间隔或间隔 其数据类型与分区列不对应 *行动:只对区间使用常量表达式。如果数据类型为 分区列是数字,间隔必须是数字 持续的。如果数据类型是date/time类型,区间必须 是一个区间类型的常量

使用间隔 NUMTODSINTERVAL(1, 'day') 进行 每日 分区

这个很好用

....
PARTITION BY RANGE (C_CREATETIME)
INTERVAL(NUMTODSINTERVAL(1, 'day'))
(
 PARTITION T_ASYNCFCMNOTIFICATION_P1 VALUES LESS THAN (TO_DATE('01-11-2020', 'DD-MM-YYYY'))
 );

间隔NUMTOYMINTERVAL用于YEARMONTH-ly分区