Automatisierte Partitionierung mit timestamp
Ich möchte meine partition-Tabelle (Oracle -) automatisiert auf einer täglichen basis.
Habe ich nur eine Timestamp-Spalte gegeben:
DD.MM.YYYY HH24:MI:SS
Bisher fand ich dies, aber es funktioniert nicht:
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'))
);
Mit diesem Beispiel erhalte ich die Invalid Id Fehler... und ich weiß nicht, ob ein Timestamp macht einen Unterschied zu einer date-Spalte.
Antwort:
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'))
);
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es ist, weil Sie versehentlich platziert eine
,
nachqty_sold NUMBER(3),
Entfernen Sie es und versuchen wie diese,Du hast ein Komma zu viel (nach
qty_sold
Spalte definition):