这是什么意思,我该如何解决?

SELECT MySequence.CURRVAL FROM DUAL;

结果:

最佳答案

mysequence.CURRVAL返回从 session 中的序列mysequence获得的最新值,因此直到在 session 中至少使用一次mysequence.NEXTVAL获得值后才定义该值。 CURRVAL的目的是让您在代码中多次使用序列值,例如

insert into parent (parent_id, ...) values (mysequence.NEXTVAL, ...);

insert into child (parent_id, ...) values (mysequence.CURRVAL, ...);

如果CURRVAL刚刚返回任何
session 通过从序列中获得的最后一个值,那么在上面的代码中它将是无用的,实际上可能导致数据损坏!

关于oracle - Oracle:此 session 中尚未定义序列MySequence.currval,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/809247/

10-10 06:06