前言
针对oracle报错的一种解决方法——存储过程:在删除表分区的数据之后,重建所有UNUSABLE索引。
一、参考总结
参考了两篇文章,在此做个总结:
1、
《Oracle分区表删除分区引发错误ORA-01502: 索引或这类索引的分区处于不可用状态》
https://www.cnblogs.com/lijiaman/p/9277149.html
文章总结了(1)索引不可用的三种原因,如下图所示;(2)在删除分区的时候,导致分区表上的唯一性全局索引为不可用状态,导致新的数据无法正常插入,从而引发了该错误;(3)解决问题的三种方法。
2、
《"ora-01502 索引或这类索引的分区处于不可用状态"的解决方案》
https://blog.csdn.net/qq_36276335/article/details/54287555
该篇文章给出了重建UNUSABLE索引的方法。
二、实用的解决方法
1.清空分区后重建UNUSABLE索引
代码如下:
CREATE OR REPLACE PROCEDURE trunc_par(
tableName in varchar2 --RDS表名(非空)
)
AS
partionName varchar2(20);