如何在Oracle中的非日期列上对表进行分区(对用户名说分区)? 我只在日期列上进行表分区。说:
CREATE TABLE X
(
Username Varchar2(10 Char),
Import_date Date
)
PARTITION BY RANGE ("IMPORT_DATE") INTERVAL (NUMTODSINTERVAL(1,'DAY'))
(PARTITION "CL_REP_DEF" VALUES LESS THAN
(TO_DATE(' 2018-06-29 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
)
尽管我不确定如何在此处使用用户名进行分区。
答案 0 :(得分:2)
Oracle提供三种类型的分区:
您可以使用其中任何一个。
分区类型的选择取决于表中存储的数据和分区列(列)的值。如果一列(列)中不同值的数量是有限的并且是已知的,那么LIST类型将是一个更好的选择。
对于您的情况,我认为HASH分区最合适。
这是一个如何对X
表进行分区的示例:
CREATE TABLE X
(
Username Varchar2(10 Char),
Import_date Date
) PARTITION BY HASH(Username) PARTITIONS 16; -- 16 is the number of partitions.
您可以在官方Oracle documentation中找到有关分区的更多信息。