Oracle Sequence Nextval-functie

Oracle Sequence Nextval Functie



In Oracle verwijst een reeks naar een databaseobject dat een reeks numerieke waarden genereert volgens een gespecificeerde toename. Sequenties worden vaak gebruikt om de unieke primaire sleutelwaarden voor records in een databasetabel te genereren.

In deze tutorial leren we hoe we de NEXTVAL-functie kunnen gebruiken bij het werken met Oracle-reeksen.

OPMERKING: deze zelfstudie behandelt niet de basisprincipes van het maken van een Oracle-reeks. Raadpleeg onze tutorial over Oracle-reeksen voor meer informatie.







Oracle Nextval-functie

De functie nextval in een Oracle-reeks wordt gebruikt om de volgende waarde in een bepaalde reeks op te halen.



We kunnen de syntaxis van de functie uitdrukken zoals weergegeven in het volgende codefragment:



volgorde_naam.volgendeval

De functie accepteert geen enkel argument of parameter. Vervolgens wordt de volgende waarde in de gedefinieerde reeks geretourneerd.





Voorbeeld Functie Demonstratie

Laten we een voorbeeld in overweging nemen. We beginnen met het definiëren van een eenvoudige Oracle-reeks, zoals weergegeven in de volgende code:

MAAK SEQUENCE test_sequence
BEGINNEN MET 1
VERHOGING DOOR 1 ;

We gebruiken de instructie CREATE SEQUENCE om een ​​nieuwe Oracle-reeks te initialiseren. Vervolgens definiëren we bij welke waarde de reeks begint en de toenamewaarde voor elke nieuw gegenereerde waarde.



In ons voorbeeld begint de test_sequence bij de waarde 1 en wordt met één verhoogd bij elke nieuwe waarde. Dit zou een reeks numerieke waarden moeten genereren, beginnend bij 1,2,3,4,5...etc.

De Oracle Nextval-functie gebruiken

We kunnen de functie volgende waarde uit de reeks test_sequence gebruiken om de volgende waarde te krijgen, zoals hieronder wordt weergegeven:

selecteren test_sequence.nextval van dubbel;

Dit zou de volgende waarde uit de reeks moeten retourneren, zoals hieronder wordt weergegeven:

Als u de instructie opnieuw aanroept, moet deze de volgende waarde in de reeks retourneren, namelijk 2.

Dit gaat door totdat de waarden zijn uitgeput of u de maximale waarde bereikt die in de reeks is gedefinieerd. Bekijk onze Oracle-reekszelfstudie om te leren hoe u de minimum- en maximumwaarden instelt.

De Nextval-functie gebruiken om waarden te herhalen

We kunnen ook de nextval-functie gebruiken om de getallen van 1 tot 10 af te drukken, zoals weergegeven in de volgende code:

MAAK SEQUENTIE looper_sequence
BEGINNEN MET 1
VERHOGING DOOR 1 ;

set SERVERUITGANG aan;
BEGINNEN
VOOR i IN 1 .. 10
LUS
DBMS_OUTPUT.PUT_LINE ( looper_sequence.nextval ) ;
EINDE LUS;
EINDE;

De verstrekte code maakt een nieuwe reeks met de naam looper_sequence die begint bij 1 en wordt verhoogd met 1 voor elke nieuw gegenereerde waarde.

Vervolgens schakelen we de SERVEROUTPUT-optie in waarmee het DBMS_OUTPUT-pakket de berichten in de SQL*Plus-console kan weergeven.

Ten slotte plaatsen we een for-lus in een end/begin-instructie om het bereik van waarden van 1 tot 10 te herhalen. Vervolgens roepen we de functie DBMS_OUTPUT.PUT_LINE aan voor elke waarde in het bereik en drukken we de volgende waarde in de reeks looper_sequence af naar de troosten.

De code drukt de volgende tien waarden in de looperreeks af. In ons geval is dit de waarde van 1 tot 10 of 11 – 20… enzovoort voor elke nieuwe oproep.

Resulterende uitvoer :

1
2
3
4
5
6
7
8
9
10


PL / SQL-procedure succesvol afgerond.

De Nextval-functie gebruiken in een Insert-instructie

We kunnen ook de functie nextval gebruiken in een insert-opdracht als primaire sleutel. Bijvoorbeeld:

invoegen in gebruikers ( ID kaart ,voornaam,creditcard,land )
waarden ( test_sequence.nextval, 'James Smit' , '4278793631436711' , 'Verenigde Arabische Emiraten' ) ;

In het gegeven voorbeeld roepen we de functie nextval aan vanuit de test_sequence om de waarde voor de id-kolom in de tabel in te voegen.

Conclusie

In dit bericht heb je ontdekt hoe je de Oracle nextval-functie kunt gebruiken om de volgende waarde in een reeks op te halen. U hebt ook geleerd hoe u de functie kunt gebruiken om een ​​reeks waarden te herhalen of om een ​​unieke waarde in een tabelkolom in te voegen.