Oracle中SYSDATE上的间隔分区
我正在寻找动态创建分区的最佳方法。类似地,分区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或MAXVALUEOracle中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:分区绑定元素必须是以下元素之
那么,我如何才能做到这一点呢?下面是一个区间分区表的示例:
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('¤t_date', 'MM-DD-YYYY'))
);