Автоматизирано разделяне с клеймо за време

Искам да разделям таблицата си (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 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')) 
 ); 

person user2428207    schedule 30.10.2013    source източник


Отговори (2)


Това е, защото погрешно сте поставили , след qty_sold NUMBER(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')) 
 ); 
person Dba    schedule 30.10.2013

Имате една запетая към много (след qty_sold дефиниция на колона):

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')) 
 );
person Przemyslaw Kruglej    schedule 30.10.2013
comment
Вярно е, и промених функцията на NUMTODSINTERVAL, която трябва да работи за дневен дял - person user2428207; 30.10.2013