Oracle中SYSDATE上的间隔分区

Oracle中SYSDATE上的间隔分区,oracle,oracle12c,dynamic-sql,database-partitioning,Oracle,Oracle12c,Dynamic Sql,Database Partitioning,我正在寻找动态创建分区的最佳方法。类似地,分区1将保存截止到今天SYSDATE的所有记录,分区2将保存截止到SYSDATE-29的昨天日期SYSDATE-1的记录,依此类推 到目前为止,我已尝试使用: 按范围列名称划分 “天”的间隔时间 分区p0值小于select SYSDATE from dual ; 及 按范围列名称划分 “天”的间隔时间 分区p0值小于双精度中的\u charSYSDATE、'DD-MON-YY' ; 但我得到一个错误如下: ORA-14019:分区绑定元素必须是以下元素之

我正在寻找动态创建分区的最佳方法。类似地,分区1将保存截止到今天SYSDATE的所有记录,分区2将保存截止到SYSDATE-29的昨天日期SYSDATE-1的记录,依此类推

到目前为止,我已尝试使用:

按范围列名称划分 “天”的间隔时间 分区p0值小于select SYSDATE from dual ; 及

按范围列名称划分 “天”的间隔时间 分区p0值小于双精度中的\u charSYSDATE、'DD-MON-YY' ; 但我得到一个错误如下:

ORA-14019:分区绑定元素必须是以下元素之一:string、datetime或interval literal、number或MAXVALUE


那么,我如何才能做到这一点呢?

下面是一个区间分区表的示例:

create table partition_interval_demo
( id         number(6)     generated always as identity
, val        varchar2(50)  not null
, sale_date  date          not null )
partition by range (sale_date) interval (interval '1' day)
( partition p1 values less than (date '0001-01-01') );

检查定义的不同之处。

不能在分区小于子句中使用SYSDATE。它必须是error或MAXVALUE关键字中给定的文本。
column curr_date new_value current_date
select to_char(sysdate, 'MM-DD-YYYY') crr_date
  from global_name
/

create table partition_interval_demo
( id         number(6)     generated always as identity
, val        varchar2(50)  not null
, sale_date  date          not null )
PARTITION BY RANGE(sale_date) INTERVAL(NUMTODSINTERVAL(1,'DAY'))
(
PARTITION p0 VALUES LESS THAN (TO_DATE('&current_date', 'MM-DD-YYYY'))
);