本文为您介绍迁移 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。