Oracle11g Oracle唯一约束违反了ORA-00001,没有重复值

Oracle11g Oracle唯一约束违反了ORA-00001,没有重复值,oracle11g,Oracle11g,我有一个使用序列的表,表上还定义了一个索引。错误在索引上,对于定义索引的五列的组合,我在表中找不到任何重复值。我试过以下几件事: 我彻底检查了索引被违反的重复值 将最大值(序列)与序列的下一个值匹配 如果索引已损坏,请重新生成索引 此表上也没有定义触发器 所有这些都已准备就绪,但我仍然面临错误。请帮助我了解我还可以尝试什么 听起来好像您正试图将一行插入到表中,表中已存在e键。为什么不使用您试图插入的键列的值在表上进行选择,并验证是否确实如此?出现此错误时,您尝试执行什么操作?创建索引或插入数据?

我有一个使用序列的表,表上还定义了一个索引。错误在索引上,对于定义索引的五列的组合,我在表中找不到任何重复值。我试过以下几件事:

  • 我彻底检查了索引被违反的重复值
  • 将最大值(序列)与序列的下一个值匹配
  • 如果索引已损坏,请重新生成索引
  • 此表上也没有定义触发器

  • 所有这些都已准备就绪,但我仍然面临错误。请帮助我了解我还可以尝试什么

    听起来好像您正试图将一行插入到表中,表中已存在e键。为什么不使用您试图插入的键列的值在表上进行选择,并验证是否确实如此?

    出现此错误时,您尝试执行什么操作?创建索引或插入数据?我正在尝试插入手动添加时已成功添加的数据。但我不能对每个失败的值都这样做,因为这个数字相当大。是否可能是您误解了序列的工作方式,并且“下一个”值与您的一个数据项冲突?否则,将CREATETABLE语句(至少是定义索引和相关字段的位)添加到上述问题中。还请描述您是如何获取数据和进行插入的,因为问题可能是缓冲等。有一个过程被调用,其中包含导致问题的insert语句。另外,如果您能解释缓冲是如何导致问题的,我将不胜感激。因为当我尝试手动插入单个值时,它不会给我任何错误。“有一个过程…”您在手动插入时调用了该过程吗?这是一个内置的过程还是你写的。如果你写了这个程序,把它放在问题里,这样人们就能看到问题。我试着这么做。表中没有插入失败的值(给出唯一的约束冲突错误)@Shivanispv您能分享您正在运行的导致问题的确切代码吗,很抱歉,我不允许这样做,但我可以告诉你,这是一个由windows服务运行的简单插入查询。有效的语句也是手动运行的相同insert查询。@Shivanispv。你能用一个简单的例子重现这个问题吗?例如,使用SCOTT模式中的标准EMP表?插入SCOTT.EMP(EMP_id、名称、部门、应用程序、角色、doj)值(EMP_seq.nextval、'xyz'、'IS'、'Some_application'、'DBA',直到日期('1-5-1981‌​','dd-mm-yyyy'))假设我在部门、应用程序和角色上定义了一个唯一的索引,考虑到每个应用程序只有一个具有特定角色的员工。