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