En este tutorial, aprenderemos cómo usar la función NextVal cuando trabaje con secuencias de Oracle.
Nota: Este tutorial no cubre los conceptos básicos de crear 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 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:
secuence_name.NextVal
La función no acepta ningún argumento o parámetro. Luego devuelve el siguiente valor en la secuencia definida.
Demostración de la función de ejemplo
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
Empiece con 1
Incremento por 1;
Usamos la instrucción Crear secuencia 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, la test_sequence comienza con el valor de 1 y los incrementos de uno en cada nuevo valor. Esto debería generar una serie de valores numéricos que comienzan en 1,2,3,4,5 ... etc.
Usando la función Oracle NextVal
Podemos usar la siguiente función de valor de la secuencia test_sequence para obtener el siguiente valor, como se muestra en lo siguiente:
Seleccione Test_Sequence.NextVal de dual;
Esto debería devolver el siguiente valor de la secuencia como se muestra en la siguiente:
Si llama nuevamente la declaración, debería devolver el siguiente valor en la serie que es 2.
Esto continúa hasta que los valores se agotan, o alcanza el valor máximo que se define en la secuencia. Verifique nuestro tutorial de secuencia Oracle para aprender cómo establecer los valores mínimos y máximos.
Usando la función NEXTVAL para pasar por alto 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 looper_sequence
Empiece con 1
Incremento por 1;
establecer ServerOutput en;
COMENZAR
Para yo en 1 ... 10
BUCLE
Dbms_output.Put_line (looper_sequence.nextVal);
Bucle final;
FIN;
El código proporcionado crea una nueva secuencia llamada Looper_Sequence que comienza en 1 e incrementos en 1 para 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 bucle para una declaración final/comienzo para iterar sobre el rango de valores de 1 a 10. Luego llamamos al dbms_output.Función PUT_LINE para cada valor en el rango e imprima el siguiente valor en la secuencia Looper_Sequence a la consola.
El código imprime los siguientes diez valores en la secuencia Looper. En nuestro caso, será el valor de 1 a 10 u 11 - 20 ... y así sucesivamente para cada nueva llamada.
Salida resultante:
1
2
3
4
5
6
7
8
9
10
Procedimiento PL/SQL completado con éxito.
Usando la función NextVal en una instrucción Insertar
También podemos usar la función NEXTVAL en una instrucción de inserción como clave principal. Por ejemplo:
Insertar en los usuarios (ID, First_Name, Credit_Card, País)
valores (test_sequence.NextVal, 'James Smith', '4278793631436711', 'Emiratos Árabes Unidos');
En el ejemplo dado, llamamos a la función NEXTVAL de la test_sequence para insertar el valor para la columna ID en la tabla.
Conclusión
En esta publicación, descubrió cómo usar la función Oracle NextVal para obtener el siguiente valor en una secuencia. También aprendió cómo usar la función para iterar sobre un conjunto de valores o insertar un valor único en una columna de tabla.