使用SQLPlus,我生成了以下序列:
CREATE SEQUENCE pubnum_seq
START WITH 7
INCREMENT BY 2
MAXVALUE 1000;
我想要做的是编写一个查询,该查询同时检索序列中的NEXTVAL和CURRVAL。似乎应该足够简单。我尝试了以下语句:
SELECT pubnum_seq.currval, pubnum_seq.nextval
FROM dual;
但是,这将为两者检索相同的值。
CURRVAL - 7
NEXTVAL - 7
如果我分别尝试这些语句,那么它可以满足我的要求,但是我对如何在一个查询中执行此操作感到很困惑。
最佳答案
好吧,在Oracle上搜索文档之后,我猜我的说法毕竟是正确的。根据this docs page:
如果一条语句同时包含对CURRVAL和NEXTVAL的引用,则Oracle将递增该序列,并为CURRVAL和NEXTVAL返回相同的值,而不管它们在该语句中的顺序如何。
对于Oracle而言,这样做对我而言并不合理,但我会相信他们的话。
关于sql - 在单个查询中检索CURRVAL和NEXTVAL,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24345497/