Oracle Sequence Nextval-funktion

Oracle Sequence Nextval Funktion



I Oracle hänvisar en sekvens till ett databasobjekt som genererar en serie numeriska värden enligt ett specificerat inkrement. Sekvenser används vanligtvis för att generera de unika primärnyckelvärdena för poster i en databastabell.

I den här handledningen kommer vi att lära oss hur du använder NEXTVAL-funktionen när du arbetar med Oracle-sekvenser.

OBS: Denna handledning täcker inte grunderna för att skapa en Oracle-sekvens. Se vår handledning om Oracle-sekvenser för att upptäcka mer.







Oracle Nextval-funktion

Nextval-funktionen i en Oracle-sekvens används för att hämta nästa värde i en given sekvens.



Vi kan uttrycka syntaxen för funktionen som visas i följande kodavsnitt:



sekvensnamn.nästaval

Funktionen accepterar inte några argument eller parameter. Den returnerar sedan nästa värde i den definierade sekvensen.





Exempel funktionsdemonstration

Låt oss ta ett exempel. Vi börjar med att definiera en enkel Oracle-sekvens som visas i följande kod:

CREATE SEQUENCE test_sequence
BÖRJA MED 1
ÖKA MED 1 ;

Vi använder CREATE SEQUENCE-satsen för att initiera en ny Oracle-sekvens. Vi definierar sedan vid vilket värde sekvensen startar och inkrementvärdet för varje nytt genererat värde.



I vårt exempel börjar test_sequence med värdet 1 och ökar med ett för varje nytt värde. Detta bör generera en serie numeriska värden som börjar på 1,2,3,4,5...etc.

Använda Oracle Nextval-funktionen

Vi kan använda nästa värde-funktion från test_sequence-sekvensen för att få nästa värde, som visas i följande:

Välj test_sequence.nextval från dual;

Detta bör returnera nästa värde från sekvensen som visas i följande:

Om du anropar påståendet igen, bör det returnera nästa värde i serien som är 2.

Detta fortsätter tills värdena är slut, eller du träffar det maximala värdet som definieras i sekvensen. Se vår Oracle-sekvenshandledning för att lära dig hur du ställer in lägsta och högsta värden.

Använda Nextval-funktionen för att loopa över värden

Vi kan också använda nästaval-funktionen för att skriva ut siffrorna från 1 till 10 som visas i följande kod:

CREATE SEQUENCE looper_sequence
BÖRJA MED 1
ÖKA MED 1 ;

uppsättning SERVEROUTPUT på;
BÖRJA
FÖR i IN 1 .. 10
SLINGA
DBMS_OUTPUT.PUT_LINE ( looper_sequence.nextval ) ;
END LOOP;
SLUTET;

Den tillhandahållna koden skapar en ny sekvens som kallas looper_sequence som börjar på 1 och ökar med 1 för varje nytt genererat värde.

Vi aktiverar sedan alternativet SERVEROUTPUT som tillåter DBMS_OUTPUT-paketet att visa meddelandena i SQL*Plus-konsolen.

Slutligen omsluter vi en for-loop i en end/begin-sats för att iterera över värdeintervallet från 1 till 10. Vi anropar sedan funktionen DBMS_OUTPUT.PUT_LINE för varje värde i intervallet och skriver ut nästa värde i looper_sequence-sekvensen till trösta.

Koden skriver ut de följande tio värdena i loopersekvensen. I vårt fall kommer det att vara värdet från 1 till 10 eller 11 – 20... och så vidare för varje nytt samtal.

Resulterande utdata :

1
2
3
4
5
6
7
8
9
10


PL / SQL-proceduren har slutförts.

Använda Nextval-funktionen i ett infoga uttalande

Vi kan också använda nextval-funktionen i en insert-sats som en primärnyckel. Till exempel:

Sätt in i användare ( id ,förnamn,kreditkort,land )
värden ( test_sequence.nextval, 'James Smith' , '4278793631436711' , 'Förenade arabemiraten' ) ;

I det givna exemplet anropar vi nextval-funktionen från test_sequence för att infoga värdet för id-kolumnen i tabellen.

Slutsats

I det här inlägget upptäckte du hur du använder Oracle nextval-funktionen för att hämta nästa värde i en sekvens. Du lärde dig också hur du använder funktionen för att iterera över en uppsättning värden eller för att infoga ett unikt värde i en tabellkolumn.