`
wenlongsust
  • 浏览: 71777 次
  • 性别: Icon_minigender_1
  • 来自: 西安
文章分类
社区版块
存档分类
最新评论

ORA-00001: unique constraint (...) violated并不一定是数据冲突

 
阅读更多

原文链接:http://blog.163.com/jet_it_life/blog/static/205097083201301410303931/


收到一位测试人员RAISE的JIRA,说在某张表上INSERT不了数据,报ORA-00001: unique constraint violated的错误,但是仔细核查了一下,并没有发现有重复的数据,让帮忙检查一下是什么问题。
仅仅看错误,应该是数据冲突引起的。但有一点比较奇怪的是错误中提示的违反的约束是一个索引,而这个索引并不是唯一索引!将这个索引DROP后,ORA-00001依然存在,但是这次换了一个索引!而这个索引依然不是唯一索引!再将这个索引DROP后再进行INSERT,问题的本质就暴露出来了:
ERROR at line 1:
ORA-00600: internal error code, arguments: [6002], [0], [227], [2], [0], [], [], []
600的错误,可能是表或表上的索引数据有坏块或者表或表的索引结构存在问题,尝试分析表及索引的结构:
SQL> ANALYZE TABLE #.# VALIDATE STRUCTURE CASCADE;
ANALYZE TABLE #.# VALIDATE STRUCTURE CASCADE
*
ERROR at line 1:
ORA-01499: table/index cross reference failure - see trace file
已经基本可以确定问题在表结构及其索引,尝试对表及相关索引进行重建:
SQL> alter TABLE #.# move;

Table altered.
SQL> alter index #.# REBUILD;

Index altered.
...
重建完表和索引后,终于正常INSERT了。

================================================================

关于ANALYZE的用法参考http://blog.sina.com.cn/s/blog_682841ba0101bncp.html

分享到:
评论

相关推荐

    oracle报错大全(珍藏版)

    #### ORA-00001: Unique Constraint Violated 当尝试插入或更新违反唯一约束的数据时触发此错误。例如,在具有唯一索引的列上插入重复数据。 #### ORA-00017: Rollback Segment Full 在进行事务回滚操作时,如果...

    oracle常见错误号

    15. ORA-00001:unique constraint (BUSHR.PK_T_DIC_BMFL) violated - 违反唯一约束,尝试插入重复的主键值。确保插入的数据不违反唯一性约束。 16. ORA-01031:insufficient privileges - 没有足够的权限执行操作...

    ORACLE ORA错误大全

    1. **ORA-00001: unique constraint (owner.constraint) violated** - 这个错误表示尝试插入的数据违反了一个唯一约束条件。解决方法通常是检查数据是否重复,或者修改数据以满足唯一性要求。 2. **ORA-00017: ...

    oracle错误代码大全

    #### ORA-00001: Unique constraint violated - **解释**: 当尝试插入或更新的数据违反了唯一性约束时触发此错误。 - **解决方案**: 检查数据是否重复,并确保每个字段值都是唯一的。 #### ORA-00017: Resource ...

    oracle 错误一览表

    #### ORA-00001: Unique constraint violated - **描述**:当尝试插入或更新一个行时,违反了唯一性约束。 - **解决方法**:确保数据不违反任何唯一性约束,或者修改约束以适应数据。 #### ORA-00017: Rollback ...

    Oracle 错误大全

    ##### ORA-00001: Unique Constraint Violated - **描述**:当尝试插入或更新违反了唯一约束的数据时出现。 - **解决方法**: - 检查数据是否违反了表定义中的唯一约束。 - 使用`ALTER TABLE`语句删除或修改该约束...

    Oracle_Errors描述

    1. **ORA-00001: unique constraint violated** 这个错误意味着违反了唯一性约束,即尝试插入的数据在指定的唯一索引或主键列中已经存在。解决方法包括检查插入数据的唯一性,或者如果数据本应重复,可能需要调整...

    Oracle官方文档CHM合集-Oracle9i错误代码

    这些错误代码通常伴随着一个错误消息,描述了问题的具体情况,比如违反了唯一性约束导致的"ORA-00001: unique constraint violated"。 学习和理解Oracle9i错误代码,可以提升数据库管理员的故障排除能力。错误代码...

    Oracle错误一览表

    #### ORA-00001: Unique constraint (table name.column name) violated 当尝试插入或更新违反了唯一性约束的记录时,会触发此错误。例如,如果某列被定义为唯一键,而尝试插入一个已存在的值,就会引发ORA-00001...

    Oracle 9I的错误提示解释

    例如,"ORA-00001: unique constraint violated" 这个错误意味着你在尝试插入或更新数据时违反了唯一性约束,即试图插入的数据在指定列中已经存在。解决这个问题的方法包括检查插入的数据是否正确,或者修改约束条件...

    oracle电子文档:数据库约束.rar

    1. **违反约束的错误**:如`ORA-00001: unique constraint violated`表示尝试插入的数据违反了唯一性约束。必须识别并修正导致冲突的数据。 2. **级联删除与更新**:外键约束的ON DELETE CASCADE和ON UPDATE ...

    oracle 10g错误代码手册

    - **ORA-00001: unique constraint (SYS.C0012345) violated** - **含义**:尝试插入一条违反唯一约束的数据。 - **解决方法**:检查数据是否符合约束条件,确保唯一性。 - **ORA-00936: missing expression** - ...

    常见ORA解决方案.pdf

    1. **ORA-00001: unique constraint (SYS.UK_XXXXX) violated** - **解释**:此错误表示尝试插入违反唯一约束的数据。这可能是由于尝试向设置了唯一索引的字段插入重复值导致的。 - **解决方案**: - 检查数据...

    Ora92ErrMsg.rar_ora92数据库_oracle

    例如,"ORA-00001: unique constraint violated"表示尝试插入或更新的数据违反了唯一性约束,可能是因为试图插入已存在的键值。 学习和理解这些错误代码对于数据库管理员(DBA)和开发者至关重要,因为它们能指导...

    oracle error message

    1. **ORA-00001: unique constraint (SYS.UNQ$XXXXXXXX) violated** - **含义**:当尝试插入违反唯一约束的数据时,会触发此错误。 - **原因**:可能是由于试图向具有唯一索引或唯一约束的列中插入重复值。 - **...

    取oracle的error code

    例如,尝试插入一个违反唯一约束的记录,你会看到类似"ORA-00001: unique constraint violated"的错误。 2. **日志文件**:Oracle的服务器和客户端日志文件,如alert.log(服务器端)和trace文件(客户端或服务器端...

    ORACLE 错误码大全

    1. **错误描述**:每个错误码都有一个详细的描述,解释了错误发生的原因,例如“ORA-00001: unique constraint violated”表示违反了唯一性约束,这意味着试图插入或更新的数据违反了某个唯一索引或唯一约束。...

    ora_错误代码

    例如,"ORA-00001"表示"unique constraint violated"(唯一性约束违反),意味着试图插入或更新的数据违反了表的唯一性约束。 3. **查询错误代码**:在Oracle文档中,可以通过错误代码快速查找错误详情。Oracle提供...

    Oracle唯一约束.txt

    这条语句会失败,并抛出错误信息`ORA-00001: unique constraint (SYS.NAME_UNIQUE) violated`,提示唯一约束被违反。 3. **插入包含空值的数据**: ```sql INSERT INTO unique_test (id, fname, lname) VALUES ...

    oracle 11g em重建报唯一约束错误解决方法

    在尝试配置Oracle 11g Enterprise Manager (EM) 时,可能会遇到一个特定的错误,即“ORA-00001: unique constraint (SYSMAN.PARAMETERS_PRIMARY_KEY) violated”。这个错误表明在尝试插入或更新数据到SYSMAN....

Global site tag (gtag.js) - Google Analytics