この例では、o_orderstatusの単一列パーティションに列を追加し、システム定義のCOLUMN形式と自動圧縮を使用して、パーティションを複数列パーティションに変更します。
ALTER TABLE orders ADD o_ordersubstatus CHAR(1) CASESPECIFIC INTO o_orderstatus;
次の同等のリクエストは、ordersテーブルを変更するために同じアクションを実行します。
ALTER TABLE orders ADD (o_ordersubstatus CHAR(1) CASESPECIFIC) INTO o_orderstatus;
どちらのリクエストも、テーブルの各行でNULLに設定されたo_ordersubstatusがある次の定義を持つようordersテーブルを変更します。
CREATE TABLE orders ( o_orderkey INTEGER NOT NULL o_custkey INTEGER o_orderstatus CHARACTER(1) CASESPECIFIC o_totalprice DECIMAL(13,2) NOT NULL o_ordertsz TIMESTAMP(6) WITH TIME ZONE NOT NULL o_comment VARCHAR(79) o_salesperson VARCHAR(5) o_ordersubstatus CHARACTER(1) CASESPECIFIC) PARTITION BY (COLUMN ALL BUT ((o_orderstatus, o_ordersubstatus)) ADD 4, RANGE_N(o_ordertsz BETWEEN TIMESTAMP '2003-01-01 00:00:00.000000+00:00' AND TIMESTAMP '2009-12-31 23:59:59.999999+00:00' EACH INTERVAL '1' MONTH) ), UNIQUE INDEX(o_orderkey);