`
sxdtzhaoxinguo
  • 浏览: 228749 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

ORA-00001 违反唯一约束条件

 
阅读更多

程序跑出下面的异常:com.ibm.websphere.ce.cm.DuplicateKeyException: ORA-00001: 违反唯一约束条件 (EOMS3.SYS_C0024492),参考下面的文章了解到我的程序可能是序列的问题。(果然是序列产生的最小值设置的太小,将序列值设置大之后,问题解决)原文如下:

<wbr><wbr><wbr> 对于java.sql.SQLException: ORA-00001: 违反唯一约束条件,可能是该表的主键唯一性出错,即:主键中已有某个键值,现在又要插入一个同样的值,这样就要报这个异常.<wbr><wbr></wbr></wbr></wbr></wbr></wbr>

<wbr><wbr><wbr> 在oracle中,主健不能自动生成,不过可以通过“序列”来实现,如果是这样的话,问题很可能就出在“序列”上了;</wbr></wbr></wbr>ORACLE表主键ID突然从已经存在的ID值开始自动生成,导致违反主键唯一性约束;可以通过修改“序列”t_seqfactory (自定义序列名)的NEXTID得以解决(以用户表T_XFHJ_LXLB为例):

<wbr><wbr><wbr> 先通过,select * from t_seqfactory where tblname='T_XFHJ_LXLB' 查找是否存在'T_XFHJ_LXLB' 这个表名,如果不存在,就要手动添加这条记录;如果存在,它对应的nextid字段上加1,即:</wbr></wbr></wbr>

UPDATE t_seqfactory SET NEXTID=40 where tblname='T_XFHJ_LXLB'


解决方案:将序列能够产生的最小值增大。

<wbr><wbr><wbr> 原来的创建语句。</wbr></wbr></wbr>

<wbr><wbr><wbr> create sequence a_fault_info_SEQ</wbr></wbr></wbr>

<wbr><wbr><wbr><span style="color:#ff0000">minvalue 1</span></wbr></wbr></wbr>

<wbr><wbr><wbr> maxvalue 999999999999999999999999<wbr>999</wbr></wbr></wbr></wbr>

<wbr><wbr><wbr> start with 1</wbr></wbr></wbr>

<wbr><wbr><wbr> increment by 1</wbr></wbr></wbr>

<wbr><wbr><wbr> cache 20;</wbr></wbr></wbr>

<wbr><wbr><wbr><strong>修改步骤:</strong></wbr></wbr></wbr>

<wbr><wbr><wbr> 1、<wbr> DROP SEQUENCE a_fault_info_SEQ;</wbr></wbr></wbr></wbr>

<wbr><wbr><wbr> 2、create sequence a_fault_info_SEQ</wbr></wbr></wbr>

<wbr><wbr><wbr><wbr><wbr><wbr><span style="color:#ff0000">minvalue 1000</span></wbr></wbr></wbr></wbr></wbr></wbr>

<wbr><wbr><wbr><wbr><wbr><wbr> maxvalue 999999999999999999999999<wbr>999</wbr></wbr></wbr></wbr></wbr></wbr></wbr>

<wbr><wbr><wbr><wbr><wbr><wbr> start with 1</wbr></wbr></wbr></wbr></wbr></wbr>

<wbr><wbr><wbr><wbr><wbr><wbr> increment by 1</wbr></wbr></wbr></wbr></wbr></wbr>

<wbr><wbr><wbr><wbr><wbr><wbr> cache 20;</wbr></wbr></wbr></wbr></wbr></wbr>


分享到:
评论

相关推荐

    Oracle错误码大全

    ORA-00001: 违反唯一约束条件 (.) ORA-00017: 请求会话以设置跟踪事件 ORA-00018: 超出最大会话数 ORA-00019: 超出最大会话许可数 ORA-00020: 超出最大进程数 () ORA-00021: 会话附属于其它某些进程;无法转换...

    oracle错误代码大全(超详细)

    ORA-00001: 违反唯一约束条件 (.) ORA-00017: 请求会话以设置跟踪事件 ORA-00018: 超出最大会话数 ORA-00019: 超出最大会话许可数 ORA-00020: 超出最大进程数 () ORA-00021: 会话附属于其它某些进程;无法转换会话 ...

    ORACLE错误码大全

    ORA-00001: 违反唯一约束条件 (.) ORA-00017: 请求会话以设置跟踪事件 ORA-00018: 超出最大会话数 ORA-00019: 超出最大会话许可数 ORA-00020: 超出最大进程数 () ORA-00021: 会话附属于其它某些进程;无法转换...

    ORA错误中文描述(包括所有)

    #### ORA-00001: 违反唯一约束条件 (.) 此错误表明在执行数据插入或更新操作时,违反了表中定义的唯一性约束。例如,尝试向具有唯一索引的列插入重复值时,就会触发这个错误。解决方法通常是在插入新记录前先检查该...

    oracle错误大全一览表

    ORA-00001: 违反唯一约束条件 (.) ORA-00017: 请求会话以设置跟踪事件 ORA-00018: 超出最大会话数 ORA-00019: 超出最大会话许可数 ORA-00020: 超出最大进程数 () ORA-00021: 会话附属于其它某些进程;无法转换...

    oracle错误一览表

    ORA-00001: 违反唯一约束条件 (.) ORA-00017: 请求会话以设置跟踪事件 ORA-00018: 超出最大会话数 ORA-00019: 超出最大会话许可数 ORA-00020: 超出最大进程数 () ORA-00021: 会话附属于其它某些进程;无法转换...

    ora-0094问题解决

    这里没有明确指出引发ORA-0094错误的具体原因,但通常插入数据时违反唯一性约束或外键约束是最常见的触发因素。 例如,如果vshortname字段被定义为唯一,而插入的数据中vshortname值已经存在,那么就会抛出ORA-0094...

    Oracle错误代码大全

    * ORA-00001: 违反唯一约束条件 * ORA-00017: 请求会话以设置跟踪事件 * ORA-00018: 超出最大会话数 * ORA-00019: 超出最大会话许可数 * ORA-00020: 超出最大进程数 * ORA-00021: 会话附属于其它某些进程;无法转换...

    oracle数据库-错误编码大全

    首先,ORA-00001表示违反了唯一约束条件。在Oracle数据库中,唯一约束(UNIQUE CONSTRAINT)用于确保表中没有重复的值。当尝试插入或更新数据导致违反已定义的唯一约束条件时,数据库将抛出ORA-00001错误。解决此...

    oracle 错误代码一览表

    1. ORA-00001: 违反唯一约束条件 这种错误发生在尝试插入或更新数据时,但该操作违反了表中的唯一约束条件。 2. ORA-00017: 请求会话以设置跟踪事件 这种错误发生在会话中尝试设置跟踪事件,但该操作失败。 3. ORA...

    Oracle SQLCODE整理

    ORA-00001: 违反唯一约束条件 (.) ORA-00017: 请求会话以设置跟踪事件 ORA-00018: 超出最大会话数 ORA-00019: 超出最大会话许可数 ORA-00020: 超出最大进程数 () ORA-00021: 会话附属于其它某些进程;无法转换...

    Oracle错误代码及解决方法

    这个错误通常发生在尝试插入或更新违反唯一键约束的数据时。解决方法包括检查数据的唯一性,或者修改约束条件,如果必要的话。 3. ORA-01422:完全匹配子查询返回多行。当子查询预期只返回一行结果但实际返回多行时...

    oracle错误及解决方法

    例如,ORA-00001表示唯一性约束违反,ORA-01422则意味着插入操作超过了查询返回的行数限制。 2. 错误排查步骤 - **阅读错误信息**:首先,仔细阅读错误提示,它会提供错误的原因和可能的解决方案。 - **查询文档*...

    Oracle error code 大全

    ORA-00001:违反唯一约束条件 ORA-00022:无效的会话 ID;访问被拒绝 ORA-00023:会话引用进程私用内存;无法分离会话 ORA-00024:单一进程模式下不允许从多个进程注册 ORA-00025:无法分配 ORA-00026:丢失或无效的...

    Oracle报错信息速查

    ORA-00001 错误表示违反唯一约束条件,这个错误通常发生在 insert、update 或 delete 操作时。当用户尝试插入或更新数据时,Oracle 数据库将检查数据是否违反唯一约束条件,如果违反,则返回 ORA-00001 错误。 二、...

    oracle常见错误号

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

    oracle常见错误及解决方法

    1. ORA-00001: 违反唯一约束条件 当尝试插入或更新的数据在具有唯一约束(如唯一索引)的列中存在重复值时,会出现此错误。解决方法是检查插入或更新的数据,确保其符合唯一性要求。 2. ORA-00017: 请求会话以设置...

    oracle报错的详细列表

    #### ORA-00001: 违反唯一约束条件 当尝试向具有唯一约束的列插入重复值时触发。例如,在唯一索引或主键约束上。 #### ORA-00017: 请求会话以设置跟踪事件 该错误通常出现在调试过程中,当尝试跟踪某个会话或进程时...

    ORACLE ORA错误大全

    - 这个错误表示尝试插入的数据违反了一个唯一约束条件。解决方法通常是检查数据是否重复,或者修改数据以满足唯一性要求。 2. **ORA-00017: rollback segment(s) in use** - 表示回滚段正在被使用中。可能的原因...

    ORACLE错误一览表,方便查询!

    ORACLE错误一览表,方便查询! ORA-00001: 违反唯一约束条件 (.)

Global site tag (gtag.js) - Google Analytics