secuencias secuencia incrementar ejemplos ejemplo create consultar cache sql oracle

sql - incrementar - Consulta varios NEXTVAL de secuencia en una declaración



secuencias sql ejemplos (4)

Básicamente, necesito consultar alrededor de mil NEXTVAL de una secuencia. Puedo consultarlos en un bucle, o puedo consultarlos a través de una combinación con una tabla realmente grande.

¿Hay alguna manera menos hacky?

Actualizaciones Básicamente, tengo un horario de operaciones sobre objetos. Cada objeto tiene un UUID generado o un ID de la base de datos. Después de calcular un programa óptimo, necesito escribirlo en la base de datos, pero cada ID en la tabla TIENE que ser de una secuencia. Así que necesito consultar algunos ID de esa secuencia. El problema es que la consulta de bucle es lenta, ya que la base de datos está muy lejos de mí, y no puedo perder varios segundos mientras ejecuto docenas de consultas en un bucle. Así que necesito consultar todos esos nuevos identificadores en una consulta.


Depende de lo que quieras hacer con ellos.

Si los inserta en una tabla, puede anular la secuencia seq.nexval en la consulta de inserción. (Como se explica aquí: ¿Cómo puedo insertar varias filas en oracle con un valor de secuencia? )

Si los usa en un bucle, puede recuperarlos en ese bucle.

¿Qué quieres hacer con ellos?

Como sé, no puedes obtener múltiples valores de la secuencia.

ACTUALIZACIÓN: la respuesta de a_horse_with_no_name se puede mejorar de la siguiente manera:

select your_sequence.nextval from dual connect by level < 1000

:)


Mi base de datos de pruebas unitarias (H2) no admitía "conectar por", por lo que tuve que encontrar otra cosa:

with temp_id_table (lvl) as (select 1 as lvl from dual union all select lvl+1 from temp_id_table where lvl < 1000) select sequence_name.nextval from temp_id_table;


Puedes usar esto:

select your_sequence.nextval from ( select level from dual connect by level < 1000 );


select sequence_name.nextval from dual connect by level < number of values you want to print;