Первая схема разделения таблиц, введенная в базе данных Oracle Database 9i и называемая разделением по диапазону (range partitioning), позволяет разбить таблицу по диапазонам значений одного или нескольких столбцов таблицы. Простейший и наиболее широко распространенный способ разделения по диапазону - это разбиение по столбцу дат.
Рассмотрим пример создания разделения таблицы Oracle по диапазону, используя следующий SQL-оператор DDL:
CREATE TABLE cust.order (Order_nbr NUM8ER(7) NOT HULL, CUSt_nbr NUM8ER(5) NOT NULL, order_dt DATE NOT NULL, saLes_emp_id NUM8ER(5) NOT NULL, saLe_price NUMBER(9,2), expected_ship_dt DATE, cancelled_dt DATE, snlp_dt OATE, status VARCHAR2(20)) ) PARTITION BY RANGE (order_dt) (PARTITION orders_1999 VALUES LESS THAN (TO_DATE( '01-JAN-2000', 'DD-MON-YYYY')) TABLESPACE ord1, PARTITION orders_2000 VALUES LESS THAN (T0_DATE('01-JAN-2001', DD-MON-YYYY')) TABLESPACE ord2, PARTITION orders_2001 VALUES LESS THAN (T0_DATE('01-JAN-2002'.'00-M0N-YYYY')) TABLESPACE ord3);
При использовании такой схемы разбиения все заказы, сделанные до 2000 года, попадут в раздел orders_1999; заказы 2000 года будут хранится в разделе orders_2000, а заказы 2001 года - в разделе orders_2001.
При создании первичного ключа можно указать существующий индекс, вместо того чтобы заставлять Oracle создавать новый глобальный индекс.