使用 ALTER TABLE…  RENAME PARTITION 命令重命名表分区。语法具有两种形式。

第一种形式重命名分区:

ALTER TABLE table_name
  RENAME PARTITION partition_name
  TO new_name;

第二种形式重命名二级分区:

ALTER TABLE table_name 
  RENAME SUBPARTITION subpartition_name 
 TO new_name;

说明

ALTER TABLE… RENAME PARTITION 命令重命名分区。

上述相同行为适用于与 RENAME SUBPARTITION 子句一起使用的 subpartition_name。

您必须拥有指定表才能调用 ALTER TABLE… RENAME PARTITION 或 ALTER TABLE… RENAME SUBPARTITION。

参数

参数 说明
table_name 分区或二级分区所在的表的名称(可能是 schema 限定的)。
partition_name 要重命名的分区的名称。
subpartition_name 要重命名的二级分区的名称。
new_name 分区或二级分区的新名称。

示例 - 重命名分区

以下命令创建名为 sales 的按列表分区的表:

CREATE TABLE sales
(
  dept_no     number,
  part_no     varchar2,
  country     varchar2(20),
  date    date,
  amount  number
)
PARTITION BY LIST(country)
(
  PARTITION europe VALUES('FRANCE', 'ITALY'),
  PARTITION asia VALUES('INDIA', 'PAKISTAN'),
  PARTITION americas VALUES('US', 'CANADA')
);

查询 ALL_TAB_PARTITIONS 视图以显示分区名称:

acctg=# SELECT partition_name, high_value FROM ALL_TAB_PARTITIONS;
 partition_name |             high_value
----------------+-------------------------------------
 EUROPE         | FOR VALUES IN ('FRANCE', 'ITALY')
 ASIA           | FOR VALUES IN ('INDIA', 'PAKISTAN')
 AMERICAS       | FOR VALUES IN ('US', 'CANADA')
(3 rows)

以下命令将 americas 分区重命名为 n_america:

ALTER TABLE sales
RENAME PARTITION americas TO n_america;

查询 ALL_TAB_PARTITIONS 视图演示已成功重命名分区:

acctg=# SELECT partition_name, high_value FROM ALL_TAB_PARTITIONS;
 partition_name |             high_value
----------------+-------------------------------------
 EUROPE         | FOR VALUES IN ('FRANCE', 'ITALY')
 ASIA           | FOR VALUES IN ('INDIA', 'PAKISTAN')
 N_AMERICA      | FOR VALUES IN ('US', 'CANADA')
(3 rows)