次の例は、最大15レベルの2バイト パーティションによるパーティション化を示します。8バイト パーティションを持つテーブルには、最大62のパーティション レベルがあります。
組み合わせパーティション式の65,535パーティションを超過しないために、各レベルは、最大3パーティションを定義できる1つのレベルを除き、最大2パーティションで定義する必要があります。
この例では、最終パーティション式が3パーティションを定義し、他のパーティション式それぞれが2パーティションを定義します。したがって、2バイトのパーティション番号の最大65,535より少ない、合計49,152パーティションが組み合わせパーティション式に対して定義されます。
パーティション式は、RANGE_N関数とCASE_N関数ベースの式の混合を使用して定義されるのに対して、各レベルはそのいずれかまたは他の関数(ただし、どちらか一方)を使用してアトミックに定義されます。パーティション式の中ではRANGE_N関数とCASE_N関数を混在させることはできず、マルチレベル パーティションを定義するときには、パーティション式をRANGE_N関数またはCASE_N関数、あるいはその両方以外に基づいたものにすることもできません。
CREATE TABLE product ( product_id INTEGER NOT NULL, p_color INTEGER NOT NULL, p_size INTEGER NOT NULL, p_width SMALLINT NOT NULL, p_depth SMALLINT NOT NULL, p_height SMALLINT NOT NULL, p_weight SMALLINT NOT NULL, p_catalog INTEGER NOT NULL, p_code BYTEINT NOT NULL, p_subcode SMALLINT NOT NULL, rating BYTEINT NOT NULL, discontinued BYTEINT NOT NULL, in_stock INTEGER NOT NULL, back_order INTEGER NOT NULL, total_sold INTEGER NOT NULL, product_date DATE FORMAT 'yyyy-mm-dd' NOT NULL, note CHARACTER(255)) PRIMARY INDEX (product_id) PARTITION BY (RANGE_N(p_color BETWEEN 1 AND 1000 EACH 500), RANGE_N(p_size BETWEEN 1 AND 1000, 1001 AND 48000000), RANGE_N(p_width BETWEEN 1 AND 400 EACH 200), RANGE_N(p_depth BETWEEN 1 AND 400 EACH 200), RANGE_N(p_height BETWEEN 1 AND 400 EACH 200), RANGE_N(p_weight BETWEEN 1 AND 2000 EACH 1000), CASE_N(p_catalog <= 1,NO CASE), RANGE_N(p_code BETWEEN 1 AND 100 EACH 50), RANGE_N(p_subcode BETWEEN 1 AND 10000 EACH 5000), RANGE_N(rating BETWEEN 1 AND 10 EACH 5), CASE_N(discontinued = 0, discontinued = 1), CASE_N(in_stock < 50, NO CASE), CASE_N(back_order = 0, NO CASE), CASE_N(total_sold < 1000,NO CASE), RANGE_N(product_date BETWEEN DATE '2004-01-01' AND DATE '2006-12-31' EACH INTERVAL '1' YEAR));