- This topic has 1 reply, 2 voices, and was last updated 10 years ago by Joel Schecheleski.
Viewing 2 posts - 1 through 2 (of 2 total)
Viewing 2 posts - 1 through 2 (of 2 total)
- You must be logged in to reply to this topic.
Boa tarde a todos, sou novo no “mundo Oracle” e me deparei com o seguinte cenário:
Em um Oracle 11g tenho a seguinte tabela:
create table
tbl_position (
start_date DATE,
store_id NUMBER,
inventory_id NUMBER(6),
qty_sold NUMBER(3)
);
Nessa tabela são armazenados muitas informações diariamente então gostaria de usar particionamento por data (PARTITION BY RANGE), e poder armazenar os dados por dia do mês em tabelas separadas, ou seja, teria as tabelas tbl_position_1, tbl_position_2, tbl_position_3, … até a tbl_position_31, para poder armazenar os dados. Acontece que não sei como criar esse tipo de particionamento para pegar a data corrente. Alguém poderia me ajudar?
create table
tbl_position (
start_date DATE,
store_id NUMBER,
inventory_id NUMBER(6),
qty_sold NUMBER(3)
);
PARTITION BY RANGE (start_date)
INTERVAL((numtodsinterval(1, ‘DAY’))
(
PARTITION tbl_position_1 VALUES LESS THAN (TO_DATE(‘data_current’, ‘DD-MM-YYYY’)),
);
Atenciosamente
Eduardo Rodrigues
Boa tarde Eduardo
uma idéia de consulta usando o SPLIT PARTITION:
– split Max value partition
— Todos os dados de 2007 para traz
alter table ALE.TABELA
split partition PARTT_2007_11
at (1080101)
into (partition PARTT_2007_12,partition IEMAX_2099_12)
update global indexes
/
Nesse caso estou pegando todos os dados de 2007 pra trás.
Exemplo de criação das tabelas:
CREATE TABLE orders_tbl (
order_id number(10),
order_date date,
order_mode varchar2(10),
order_total number(15,2),
customer_id number(10))
PARTITION BY RANGE (order_date) INTERVAL(NUMTOYMINTERVAL(1,’MONTH’))
STORE IN (data01,data02,data03,data04)
(PARTITION JUN10 values less than TO_DATE(’01-07-10′,’dd-mm-yy’)),
PARTITION JUL10 values less than TO_DATE(’01-08-10′,’dd-mm-yy’)),
PARTITION AUG10 values less than TO_DATE(’01-09-10′,’dd-mm-yy’)));
CREATE TABLE order_items_tbl (
order_id NUMBER(10),
line_id NUMBER(3),
product_id NUMBER(10),
price NUMBER(10,2),
quantity NUMBER(5),
CONSTRAINT order_items_fk FOREIGN KEY (order_id)
REFERENCES orders_tbl)
PARTITION BY REFERENCE (order_items_fk)
Espero ter ajudado 😉