本文為您介紹遷移 Oracle 資料庫的資料至 OceanBase 資料庫 Oracle 租戶時,CREATE TABLE DDL 一級分區的支援轉換範圍。
range 分區
range 分區 range_partitions 的文法如下:
PARTITION BY RANGE (column[, column ]...)
[ INTERVAL ( expr ) [ STORE IN ( tablespace [, tablespace]...) ]]
( PARTITION [ partition ]
range_values_clause table_partition_description
[, PARTITION [ partition ]
range_values_clause table_partition_description
[ external_part_subpart_data_props ]
]...
)
range_values_clause:
VALUES LESS THAN
({ literal | MAXVALUE }
[, { literal | MAXVALUE } ]...
)
table_partition_description:
PARTITION [partition] [table_partition_description] )
external_part_subpart_data_props:
[ DEFAULT DIRECTORY directory ]
[ LOCATION
([ directory: ] 'location_specifier'
[, [ directory: ] 'location_specifier' ]...
)
]
支援的範圍
支援 PARTITION BY RANGE (column[, column ]...) (PARTITION [ partition ] range_values_clause)
子句定義 range 分區。樣本如下:
CREATE TABLE T (C1 DATE DEFAULT SYSDATE, C2 NUMBER) PARTITION BY RANGE(C1)
(
PARTITION P0 VALUES LESS THAN (TO_DATE('01-APR-1998','DD-MON-YYYY')),
PARTITION P1 VALUES LESS THAN (MAXVALUE)
);
不支援的範圍
不支援
INTERVAL(expr)
子句來定義分區間隔,會忽略該 option。不支援
[ STORE IN ( tablespace [, tablespace]...) ]]
子句指定儲存的 tablespace,會忽略該 option。不支援
external_part_subpart_data_props
子句來定義指定一個或多個外部資料源,會忽略該 option。不支援
table_partition_description
子句定義分區表的物理和儲存特徵,會忽略該 option。
list 分區
list 分區的文法如下:
PARTITION BY LIST ( column [, column]... )
[ AUTOMATIC [ STORE IN ( tablespace [, tablespace ]... ) ] ]
(PARTITION [ partition ]
list_values_clause table_partition_description
[, PARTITION [ partition ]
list_values_clause table_partition_description
[ external_part_subpart_data_props ]
]...
)
list_values_clause:
VALUES ( list_values | DEFAULT )
table_partition_description:
PARTITION [partition] [table_partition_description] )
external_part_subpart_data_props:
[ DEFAULT DIRECTORY directory ]
[ LOCATION
([ directory: ] 'location_specifier'
[, [ directory: ] 'location_specifier' ]...
)
]
支援的範圍
支援 PARTITION BY LIST ( column [, column]... ) (PARTITION [ partition ] list_values_clause)
子句定義 list 分區。樣本如下:
CREATE TABLE T (C1 VARCHAR2(100)) PARTITION BY LIST(C1)
( PARTITION P0 VALUES("1","2"),
PARTITION P1 VALUES("3","4")
);
不支援的範圍
不支援 AUTOMATIC 定義自動建立 list 分區,會忽略該 option。
不支援
[ STORE IN ( tablespace [, tablespace ]... ) ]
子句指定分區的空間,會忽略該 option。不支援
external_part_subpart_data_props
子句定義指定一個或多個外部資料源,會忽略該 option。不支援
table_partition_description
子句定義分區表的物理和儲存特徵,會忽略該 option。
hash 分區
hash 分區的文法如下:
PARTITION BY HASH (column [, column ] ...)
{ individual_hash_partitions
| hash_partitions_by_quantity
}
individual_hash_partitions:
( PARTITION [partition] [read_only_clause] [indexing_clause] [partitioning_storage_clause]
[, PARTITION [partition] [read_only_clause] [indexing_clause] [partitioning_storage_clause]]... )
partitioning_storage_clause:
[ { { TABLESPACE tablespace | TABLESPACE SET tablespace_set }
| OVERFLOW [ TABLESPACE tablespace] | TABLESPACE SET tablespace_set
| table_compression
| index_compression
| inmemory_clause
| ilm_clause
| LOB_partitioning_storage
| VARRAY varray_item STORE AS [SECUREFILE | BASICFILE] LOB LOB_segname
}...
]
hash_partitions_by_quantity:
PARTITIONS hash_partition_quantity
[ STORE IN (tablespace [, tablespace ]...) ]
[ table_compression | index_compression ]
[ OVERFLOW STORE IN (tablespace [, tablespace ]...) ]
支援的範圍
支援
individual_hash_partitions
子句定義自訂 hash 分區,詳情請參見 自訂分區。支援
partitioning_storage_clause
子句定義 hash 分區數量,僅支援PARTITION BY HASH (column [, column ] ...) PARTITIONS hash_partition_quantity
子句定義 hash 分區數量。樣本如下:CREATE TABLE T (C NUMBER) PARTITION BY HASH(C) PARTITIONS 4
不支援的範圍
不支援 partitioning_storage_clause
子句中的 option:
不支援指定
INDEXING { ON | OFF }
設定表、表分區或表子分區的索引屬性,會忽略該 option。不支援指定
partitioning_storage_clause
屬性定義散列分區以及範圍、散列和列表子分區指定儲存特徵,會忽略該 option。不支援
STORE IN (tablespace [, tablespace ]...)
指定空間,會忽略該 option。不支援
table_compression
、index_compression
指定是否壓縮資料區段和索引壓縮,會忽略該 option。不支援
OVERFLOW STORE IN (tablespace [, tablespace ]...)
指定空間,會忽略該 option。