Oracle 带时间戳的自动分区
我想每天对我的表(Oracle)进行自动分区 我只提供了一个时间戳列:Oracle 带时间戳的自动分区,oracle,oracle11g,partitioning,Oracle,Oracle11g,Partitioning,我想每天对我的表(Oracle)进行自动分区 我只提供了一个时间戳列: DD.MM.YYYY HH24:MI:SS 到目前为止,我发现了这个,但它不起作用: create table pos_data ( start_date DATE, store_id NUMBER, inventory_id NUMBER(6), qty_sold NUMBER(3), ) PARTITION BY R
DD.MM.YYYY HH24:MI:SS
到目前为止,我发现了这个,但它不起作用:
create table
pos_data (
start_date DATE,
store_id NUMBER,
inventory_id NUMBER(6),
qty_sold NUMBER(3),
)
PARTITION BY RANGE (start_date)
INTERVAL(NUMTOYMINTERVAL(1, 'MONTH'))
(
PARTITION pos_data_p2 VALUES LESS THAN (TO_DATE('1-7-2007', 'DD-MM-YYYY')),
PARTITION pos_data_p3 VALUES LESS THAN (TO_DATE('1-8-2007', 'DD-MM-YYYY'))
);
在这个例子中,我得到了无效的标识符错误。。。我不知道时间戳是否会对日期列产生影响
答复:
create table
pos_data_two (
start_date TIMESTAMP,
store_id NUMBER,
inventory_id NUMBER(6),
qty_sold NUMBER(3)
)
PARTITION BY RANGE (start_date)
INTERVAL(NUMTODSINTERVAL (1, 'DAY'))
(
PARTITION pos_data_p2 VALUES LESS THAN (TO_DATE('1-7-2007', 'DD-MM-YYYY')),
PARTITION pos_data_p3 VALUES LESS THAN (TO_DATE('1-8-2007', 'DD-MM-YYYY'))
);
这是因为您错误地将
,
放在销售数量(3)之后,
将其删除,然后像这样尝试
create table
pos_data (
start_date DATE,
store_id NUMBER,
inventory_id NUMBER(6),
qty_sold NUMBER(3)
)
PARTITION BY RANGE (start_date)
INTERVAL(NUMTOYMINTERVAL(1, 'MONTH'))
(
PARTITION pos_data_p2 VALUES LESS THAN (TO_DATE('1-7-2007', 'DD-MM-YYYY')),
PARTITION pos_data_p3 VALUES LESS THAN (TO_DATE('1-8-2007', 'DD-MM-YYYY'))
);
您有一个逗号对多个逗号(在
售出数量
列定义之后):
是的,我将函数改为NUMTODSINTERVAL,这应该适用于日常分区
create table
pos_data (
start_date DATE,
store_id NUMBER,
inventory_id NUMBER(6),
qty_sold NUMBER(3)
)
PARTITION BY RANGE (start_date)
INTERVAL(NUMTOYMINTERVAL(1, 'MONTH'))
(
PARTITION pos_data_p2 VALUES LESS THAN (TO_DATE('1-7-2007', 'DD-MM-YYYY')),
PARTITION pos_data_p3 VALUES LESS THAN (TO_DATE('1-8-2007', 'DD-MM-YYYY'))
);