按周分区 - 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 天。
我想知道你是否可以帮助我找出并处理 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 天。