Fonction Oracle Sequence Nextval

Fonction Oracle Sequence Nextval



Dans Oracle, une séquence fait référence à un objet de base de données qui génère une série de valeurs numériques selon un incrément spécifié. Les séquences sont couramment utilisées pour générer les valeurs de clé primaire uniques pour les enregistrements d'une table de base de données.

Dans ce didacticiel, nous apprendrons à utiliser la fonction NEXTVAL lorsque vous travaillez avec des séquences Oracle.

REMARQUE : Ce didacticiel ne couvre pas les bases de la création d'une séquence Oracle. Consultez notre tutoriel sur les séquences Oracle pour en savoir plus.







Fonction Oracle Nextval

La fonction nextval dans une séquence Oracle est utilisée pour récupérer la valeur suivante dans une séquence donnée.



Nous pouvons exprimer la syntaxe de la fonction comme indiqué dans l'extrait de code suivant :



nom_séquence.nextval

La fonction n'accepte aucun argument ou paramètre. Il renvoie ensuite la valeur suivante dans la séquence définie.





Exemple de démonstration de fonction

Prenons un exemple en considération. Nous commençons par définir une séquence Oracle simple comme indiqué dans le code suivant :

CRÉER SÉQUENCE test_sequence
COMMENCER AVEC 1
INCREMENTER DE 1 ;

Nous utilisons l'instruction CREATE SEQUENCE pour initialiser une nouvelle séquence Oracle. On définit ensuite à quelle valeur la séquence démarre et la valeur d'incrémentation pour chaque nouvelle valeur générée.



Dans notre exemple, le test_sequence commence à la valeur de 1 et s'incrémente de un à chaque nouvelle valeur. Cela devrait générer une série de valeurs numériques commençant par 1,2,3,4,5…etc.

Utilisation de la fonction Oracle Nextval

Nous pouvons utiliser la fonction de valeur suivante de la séquence test_sequence pour obtenir la valeur suivante, comme illustré ci-dessous :

sélectionner test_sequence.nextval de dual ;

Cela devrait renvoyer la valeur suivante de la séquence, comme indiqué ci-dessous :

Si vous appelez à nouveau l'instruction, elle devrait renvoyer la valeur suivante de la série qui est 2.

Cela continue jusqu'à ce que les valeurs soient épuisées ou que vous atteigniez la valeur maximale définie dans la séquence. Consultez notre didacticiel de séquence Oracle pour savoir comment définir les valeurs minimales et maximales.

Utilisation de la fonction Nextval pour boucler sur des valeurs

Nous pouvons également utiliser la fonction nextval pour imprimer les nombres de 1 à 10 comme indiqué dans le code suivant :

CREER SEQUENCE looper_sequence
COMMENCER AVEC 1
INCREMENTER DE 1 ;

Positionner SERVEROUTPUT activé ;
COMMENCER
POUR JE DANS 1 .. dix
BOUCLER
DBMS_OUTPUT.PUT_LINE ( looper_sequence.nextval ) ;
FIN DE BOUCLE ;
FIN;

Le code fourni crée une nouvelle séquence appelée looper_sequence qui commence à 1 et incrémente de 1 pour chaque nouvelle valeur générée.

Nous activons ensuite l'option SERVEROUTPUT qui permet au package DBMS_OUTPUT d'afficher les messages dans la console SQL*Plus.

Enfin, nous incluons une boucle for dans une instruction end/begin pour itérer sur la plage de valeurs de 1 à 10. Nous appelons ensuite la fonction DBMS_OUTPUT.PUT_LINE pour chaque valeur de la plage et imprimons la valeur suivante dans la séquence looper_sequence au console.

Le code imprime les dix valeurs suivantes dans la séquence de zone répétée. Dans notre cas, ce sera la valeur de 1 à 10 ou 11 – 20… et ainsi de suite à chaque nouvel appel.

Sortie résultante :

1
2
3
4
5
6
7
8
9
dix


PL / Procédure SQL terminée avec succès.

Utilisation de la fonction Nextval dans une instruction Insert

Nous pouvons également utiliser la fonction nextval dans une instruction d'insertion comme clé primaire. Par exemple:

insérer dans utilisateurs ( identifiant ,prénom,carte_de_crédit,pays )
valeurs ( test_sequence.nextval, 'James Smith' , '4278793631436711' , 'Emirats Arabes Unis' ) ;

Dans l'exemple donné, nous appelons la fonction nextval à partir de test_sequence pour insérer la valeur de la colonne id dans la table.

Conclusion

Dans cet article, vous avez découvert comment utiliser la fonction Oracle nextval pour récupérer la valeur suivante dans une séquence. Vous avez également appris à utiliser la fonction pour parcourir un ensemble de valeurs ou pour insérer une valeur unique dans une colonne de tableau.