在一个语句中从序列中查询几个NEXTVAL

F0R*_*0RR 24 sql oracle

基本上,我需要从序列中查询大约一千个NEXTVAL.我可以在一个循环中查询它们,或者我可以通过一个带有reeeeeally大表的连接来查询它们.

有没有更少的hacky方式?

UPD. 基本上,我有一个对象操作的时间表.每个对象都有一个生成的UUID或来自数据库的ID.在计算出最佳计划后,我需要将其写入DB,但表中的每个ID都来自一个序列.所以我需要查询该序列中的一些ID.问题是循环查询很慢,因为数据库离我很远,而且我不能在循环中执行数十个查询时松散几秒钟.所以我需要在一个查询中查询所有这些新ID.

a_h*_*ame 37

你可以用这个:

select your_sequence.nextval
from (
   select level 
   from dual 
   connect by level < 1000
);
Run Code Online (Sandbox Code Playgroud)


Flo*_*ita 16

取决于你想用它们做什么.

如果将它们插入表中,则可以在插入查询中取消seq.nexval.(如下所述:如何使用序列值将多行插入oracle?)

如果在循环中使用它们,则可以在该循环中获取它们.

你想和他们做什么?

据我所知,您无法从序列中获取多个值.

更新: a_horse_with_no_name的aswer可以像这样改进:

select your_sequence.nextval
from dual 
connect by level < 1000
Run Code Online (Sandbox Code Playgroud)

:)