分区表的维护 - ORA-14402 更新分区关键字列
在使用分区表时,需要注意的一个问题是,当我们更新分区字段时,可能会遇到如下错误:
SQL> update DOM_REAL_CATEGORY_FL set doc_level=101 where doc_level=51;
update DOM_REAL_CATEGORY_FL set doc_level=101 where doc_level=51
*
ERROR at line 1:
ORA-14402: updating partition key column would cause a partition change
这个错误的解释是:
ORA-14402: updating partition key column would cause a partition change
Cause: An UPDATE statement attempted to change the value of a partition key column causing migration of the row to another partition
Action: Do not attempt to update a partition key column or make sure that the new partition key is within the range containing the old partition key.
为了解决这个问题,可以使用如下命令更改分区表的属性:
SQL> alter table DOM_REAL_CATEGORY_FL enable row movement;
Table altered.
更改分区表的分区键值,意味着要删除记录并重新插入一条新的记录,这会引起记录(Record)的移动,记录的Rowid会改变,相关索引需要进行维护。
SQL> update DOM_REAL_CATEGORY_FL set doc_level=101 where doc_level=51;
57024 rows updated.
Elapsed: 00:00:34.61
该文章经过本人整理所得,欢迎转载,转载时请加上本文地址;本文基于署名 2.5 中国大陆许可协议发布,请勿演绎或用于商业目的,但是必须保留本文的署名张志涛(包含链接如您有任何疑问或者授权方面的协商,请给我留言。