• ORA-01502错误成因和解决方法


    这个错误是由于索引失效造成的,重建索引后,问题就解决了。

    我们看到,当使用类似 alter table xxxxxx move tablespace xxxxxxx 命令后,索引就会失效。

    当然,作为测试,也可以直接使用alter index idxt unusable;命令使索引失效,例如:
    SQL> alter index idxt unusable;

    Index altered.

    SQL>

    在这种情况下,我们向表中插入数据看看是什么情况:
    SQL> insert into t values(11);
    insert into t values(11)
    *
    ERROR at line 1:
    ORA-01502: index 'MISC.IDXT' or partition of such index is in unusable state


    SQL> 
    我们看到,这时就出现了常见的“ORA-01502: index 'XXXXXXXX' or partition of such index is in unusable state”错误。

    检查一下索引状态,我们会注意到索引已经是“UNUSABLE”了。
    SQL> select index_name,index_type,tablespace_name,table_type,status from user_indexes where index_name='IDXT';

    INDEX_NAME                     INDEX_TYPE                  TABLESPACE_NAME                TABLE_TYPE  STATUS
    ------------------------------ --------------------------- ------------------------------ ----------- --------
    IDXT                           NORMAL                      DATA_DYNAMIC                   TABLE       UNUSABLE

    SQL>

    首先,先设置 “skip_unusable_indexes=false”,也就是不跳过失效索引
    SQL> alter session set skip_unusable_indexes=false;

    Session altered.

    SQL>

    然后重建这个失效的索引
    SQL> alter index idxt rebuild;

    Index altered.

    SQL> select index_name,index_type,tablespace_name,table_type,status from user_indexes where index_name='IDXT';

    INDEX_NAME                     INDEX_TYPE                  TABLESPACE_NAME                TABLE_TYPE  STATUS
    ------------------------------ --------------------------- ------------------------------ ----------- --------
    IDXT                           NORMAL                      DATA_DYNAMIC                   TABLE       VALID

    SQL> 
    我们看到重建索引后,索引的状态就正常了。

    现在插入数据,看看是正常:
    SQL> insert into t values(12);

    1 row created.

    SQL> commit;

    Commit complete.

    SQL> 
    看来,重建索引才是解决这类问题的彻底的方法。

  • 相关阅读:
    为 DropDownList 选项添加背景或样式
    杂七杂八——Name与x:Name的关系
    原创Godaddy帐户取消信用卡或PayPla绑定,防止无端扣费[图文教程]
    dota中名词解释
    在 JavaScript 中如何创建多行字符串(JavaScript Multiline String)
    HDU 4035 Maze(概率DP)
    获取想要得到的风格设计属性描述————Resources.Theme类函数public TypedArray obtainStyledAttributes()
    Android 异步更新UI —— Handler 【复杂的数据操作另起新线程然后在当前UI线程更新结果】
    超链接中文乱码问题
    java中的final变量
  • 原文地址:https://www.cnblogs.com/husam/p/6604442.html
Copyright © 2020-2023  润新知