按周分区 - Oracle 数据库

Partition by Week - Oracle Database

我想知道你是否可以帮助我找出并处理 Oracle 中的按周分区。

我的情况是我每天都有大量数据,我想每周进行一次分区。在将数据插入数据库时​​,我也会使用 sysdate 以使记录唯一。

我应该手动编写它们吗?如果是,它看起来应该如何?我还应该使用类似的东西吗:VALUES LESS THAN?

非常期待听到您的意见!

每周分区有问题,但您可以创建 7 天的间隔分区。 Oracle 将自动为新条目创建新分区。

create table TEST_partition
(
  ID              number(4, 0)
, creation_date   date
)
partition by range  (creation_date)
  interval ( numtodsinterval(7, 'day') )
  (partition TEST_P1 values less than (to_date(' 2018-01-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN')));

您可以按如下方式创建区间分区:

CREATE TABLE invoices
(invoice_no    NUMBER NOT NULL,
 invoice_date  DATE   NOT NULL,
 comments      VARCHAR2(500))
PARTITION BY RANGE (invoice_date)
INTERVAL (NUMTODSINTERVAL(7,'DAY'))
(PARTITION invoices_q1 VALUES LESS THAN (TO_DATE('01/04/2001', 'DD/MM/YYYY')));

它创建一个新分区,从星期日到星期六为 7 天。