【发布时间】:2014-01-14 21:15:12
【问题描述】:
我有一个大问题。我需要知道预言序列的下一个值而不改变它。
如果我使用 sequence.NEXTVAL ,我会得到我需要的东西。问题是值变了,所以下一条记录会得到这个值+1,对我不好。
我知道我可以使用sequence.CURRVAL,这很好,因为它不会更改值,但如果没有记录,它就不起作用,在这种情况下,序列值可以是任意数字(不仅 1 会导致序列值钢存在)。
请帮我找到解决办法。
谢谢你不一样!!!!!!
【问题讨论】:
-
“但如果没有记录,它就不起作用”是什么意思?
-
您为什么需要知道这些?您不能将该值用于任何事情 - 在您致电
nextval之前,其他人可能会抓住它?currval将是未定义的,除非您在此会话中调用了nextval;您可以查询user_sequences视图,但这也不一定准确(其他会话、缓存、RAC...)。 -
“但是如果没有记录,它就不起作用”意味着当你没有记录和现有序列时会出错,我需要知道它以便我可以同步一些东西。
-
'我需要知道它,这样我才能同步一些东西' - 你为什么不解释(在问题中)你实际上想要实现的目标,以及你认为知道这会如何帮助?