我们在将记录插入oracle数据库中的表时遇到问题。
插件是通过VB.NET完成的。表本身没有主键,并且有两个唯一索引。
两个唯一索引是一个整数(由oracle序列维护)和一个char字段(基于第二个序列的计算)。
在尝试插入记录时,我们会收到“ORA-00001”字样。结果是错误的。单步执行代码,它首先得到两个序列的nextvals(之后我可以看到它们确实增加了),然后运行insert查询并失败。我可以使用insert尝试运行的两个唯一索引值并在表中查询它们,并且不会得到任何结果。
我不确定哪种信息可以帮助缩小此问题的范围,但我确实知道我在.NET中返回的oracle错误指向整数索引值。
如果有人有任何见解,我们将不胜感激!
答案 0 :(得分:0)
每当你打电话给“NEXTVAL”时,它就会增加。
如果要插入带序列的表,您可能会发现错误“违反了唯一约束”。但是,当你第二次尝试时,它会成功,因为序列需要在你第一次使用它时检查。
以下是解决方案:
插入前,执行选择查询:
从表中选择(您对列名称进行排序)。
然后,
插入表值(...)。
它会起作用。