更改具有十亿行的分区表中的列的数据类型

时间:2019-06-05 20:05:34

标签: oracle

我们有一个表,其中按日期范围划分了120个分区,然后又对范围进行了重新分区。

每个分区大约有2亿条记录,传统的更改数据类型的方法会使我们的产品在数小时内无法响应。是否有更好的方法来更改如此庞大的表的数据类型?

我们已经尝试了以下选项:

  1. Exchange分区。这不起作用。
  2. 创建一个具有与现有表相同的结构的新表,并使用更改的列,然后使用/ * + append *插入数据。再次需要几个小时。

当前列大小为varchar2(30)。我们需要将其更改为:

ALTER TABLE ORDERS MODIFY (INFO VARCHAR2(50) );

1 个答案:

答案 0 :(得分:2)

varchar2(30)更改为varchar2(50)应该可以立即生效,并且不会造成任何麻烦。

您仅修改了一些元数据,但未触及实际的表数据。