ORA-00001唯一约束 - 具有有效值

时间:2016-07-27 12:50:37

标签: vb.net oracle10g

我们在将记录插入oracle数据库中的表时遇到问题。

插件是通过VB.NET完成的。表本身没有主键,并且有两个唯一索引。

两个唯一索引是一个整数(由oracle序列维护)和一个char字段(基于第二个序列的计算)。

在尝试插入记录时,我们会收到“ORA-00001”字样。结果是错误的。单步执行代码,它首先得到两个序列的nextvals(之后我可以看到它们确实增加了),然后运行insert查询并失败。我可以使用insert尝试运行的两个唯一索引值并在表中查询它们,并且不会得到任何结果。

我不确定哪种信息可以帮助缩小此问题的范围,但我确实知道我在.NET中返回的oracle错误指向整数索引值。

如果有人有任何见解,我们将不胜感激!

1 个答案:

答案 0 :(得分:0)

每当你打电话给“NEXTVAL”时,它就会增加。

如果要插入带序列的表,您可能会发现错误“违反了唯一约束”。但是,当你第二次尝试时,它会成功,因为序列需要在你第一次使用它时检查。

以下是解决方案:

插入前

,执行选择查询:

从表中选择(您对列名称进行排序)。

然后,

插入表值(...)。

它会起作用。