Función Oracle Sequence Nextval

Funcion Oracle Sequence Nextval



En Oracle, una secuencia se refiere a un objeto de base de datos que genera una serie de valores numéricos según un incremento específico. Las secuencias se usan comúnmente para generar los valores de clave principal únicos para registros en una tabla de base de datos.

En este tutorial, aprenderemos a usar la función NEXTVAL al trabajar con secuencias de Oracle.

NOTA: Este tutorial no cubre los conceptos básicos de la creación de una secuencia de Oracle. Consulte nuestro tutorial sobre secuencias de Oracle para descubrir más.







Función Oracle Nextval

La función nextval en una secuencia de Oracle se usa para obtener el siguiente valor en una secuencia dada.



Podemos expresar la sintaxis de la función como se muestra en el siguiente fragmento de código:



nombre_secuencia.nextval

La función no acepta ningún argumento o parámetro. Luego devuelve el siguiente valor en la secuencia definida.





Ejemplo de demostración de función

Tomemos en consideración un ejemplo. Comenzamos definiendo una secuencia de Oracle simple como se muestra en el siguiente código:

CREAR SECUENCIA test_sequence
EMPEZAR CON 1
INCREMENTO POR 1 ;

Usamos la instrucción CREATE SEQUENCE para inicializar una nueva secuencia de Oracle. Luego definimos en qué valor comienza la secuencia y el valor de incremento para cada nuevo valor generado.



En nuestro ejemplo, test_sequence comienza en el valor de 1 y se incrementa en uno en cada nuevo valor. Esto debería generar una serie de valores numéricos a partir de 1,2,3,4,5…etc.

Uso de la función Nextval de Oracle

Podemos usar la siguiente función de valor de la secuencia test_sequence para obtener el siguiente valor, como se muestra a continuación:

Seleccione test_sequence.nextval de dual;

Esto debería devolver el siguiente valor de la secuencia como se muestra a continuación:

Si vuelve a llamar a la instrucción, debería devolver el siguiente valor de la serie, que es 2.

Esto continúa hasta que se agotan los valores, o alcanza el valor máximo que se define en la secuencia. Consulte nuestro tutorial de secuencias de Oracle para aprender a establecer los valores mínimos y máximos.

Uso de la función Nextval para realizar un bucle sobre los valores

También podemos usar la función nextval para imprimir los números del 1 al 10 como se muestra en el siguiente código:

CREAR SECUENCIA loop_sequence
EMPEZAR CON 1
INCREMENTO POR 1 ;

colocar SALIDA DEL SERVIDOR activada;
EMPEZAR
PARA YO EN 1 .. 10
LAZO
DBMS_OUTPUT.PUT_LINE ( looper_sequence.nextval ) ;
FIN DEL BUCLE;
FINAL;

El código proporcionado crea una nueva secuencia llamada looper_sequence que comienza en 1 y se incrementa en 1 por cada nuevo valor generado.

Luego habilitamos la opción SERVEROUTPUT que permite que el paquete DBMS_OUTPUT muestre los mensajes en la consola SQL*Plus.

Finalmente, encerramos un ciclo for dentro de una declaración final/comienzo para iterar sobre el rango de valores del 1 al 10. Luego llamamos a la función DBMS_OUTPUT.PUT_LINE para cada valor en el rango e imprimimos el siguiente valor en la secuencia loop_sequence al consola.

El código imprime los siguientes diez valores en la secuencia del looper. En nuestro caso, será el valor de 1 a 10 o de 11 a 20… y así sucesivamente para cada nueva llamada.

Salida resultante :

1
2
3
4
5
6
7
8
9
10


ES / Procedimiento SQL completado con éxito.

Uso de la función Nextval en una declaración de inserción

También podemos usar la función nextval en una declaración de inserción como clave principal. Por ejemplo:

insertar en usuarios ( identificación ,nombre,tarjeta_de_credito,país )
valores ( test_sequence.nextval, 'James Smith' , '4278793631436711' , 'Emiratos Árabes Unidos' ) ;

En el ejemplo dado, llamamos a la función nextval desde test_sequence para insertar el valor de la columna id en la tabla.

Conclusión

En esta publicación, descubrió cómo usar la función nextval de Oracle para obtener el siguiente valor en una secuencia. También aprendió a usar la función para iterar sobre un conjunto de valores o para insertar un valor único en una columna de tabla.