【发布时间】:2020-02-15 04:25:52
【问题描述】:
作为我的标题,我遇到了这样的麻烦:
我有一个名为 DISTRICT 的非分区表,现在我想使用 DBMS_REDEFINITION 将非分区表更改为分区表。
我创建了一个克隆表,该表具有与 DISTRICT TABLE 相同的数据类型:
CREATE TABLE PAR.DISTRICT_CLONE (
ID NUMBER(10,0),
DISTRICT_NAME VARCHAR2(1000) ,
STATUS NUMBER(10,0),
LASTUPDATE DATE,
CREATEBY VARCHAR2(1000) ,
UPDATEBY VARCHAR2(1000),
CONSTRAINT PK_DISTRICT PRIMARY KEY (ID)
)
PARTITION BY LIST(DISTRICT_NAME)
(
PARTITION REGION_TOTAL VALUES('NY','LA','Washington','Cali','RD'........));
在 DISTRICT 表中,我在 DISTRICT_NAME 列有很多唯一值,我想对所有这些进行分区。
为此,我必须在那之后将 PARTITION REGION_TOTAL 中的所有值传递给 SPLIT。有没有办法让它变得更容易?
我正在使用 Oracle 12C
谢谢!
【问题讨论】:
-
我只看到一个分区 REGION_TOTAL 将在一个分区中保存所有记录(因为您列出了分区键列 DISTRICT_NAME 的所有不同值)。这样的分区有什么用?无论如何,您的所有记录都只会放在一个分区中。为什么不使用 Hash 分区呢?
-
@ArtBajji 感谢您的建议。我知道我可以使用 Hash 分区而不是 List 分区。但这不是我预期的答案。我只想知道是否有任何方法可以替换所有值而不是传递每个值。
标签: oracle12c database-partitioning