Oracle9i現在有兩個方法可以完成分割:range分割和新的list分割。但是range分割需要標量數值,而list分割允許使用非標量數值。
要區分range分割和list分割,讓我們看一個簡單的例子。現在我們看一個range分割的表,然後使用area_code來分割數據:
Create table customer ( Last_name varchar2(30), area_code number . . . ) PARTITION BY RANGE (area_code) ( PARTITION part_505 values less than(505), PARTITION part_212 values less than(212), PARTITION part_919 values less than(919), PARTITION part_252 values less than(252), PARTITION part_415 values less than(MAXVALUE) );
不像range分割需要一個NUMBER或者DATE標量值,list分割可以用於根據你想用的任何值來分割數據。下面是一個customer數據庫的例子,其數據根據州(state)進行分割:
create table customer (col values) partition by list (state_name) partition yankees values ('New York','Maine'), partition rebels values ('North Carolina', South Carolina');
我們可以看到,list分割為大型Oracle表增加了很大的靈活性,而且在進行邏輯劃分行數據的時候給了你更多的選擇。