Oracle Sequence Nextval-funktion

Oracle Sequence Nextval Funktion



I Oracle refererer en sekvens til et databaseobjekt, der genererer en række numeriske værdier i henhold til en specificeret stigning. Sekvenser bruges almindeligvis til at generere de unikke primære nøgleværdier for poster i en databasetabel.

I denne tutorial lærer vi, hvordan du bruger NEXTVAL-funktionen, når du arbejder med Oracle-sekvenser.

BEMÆRK: Denne vejledning dækker ikke det grundlæggende i at skabe en Oracle-sekvens. Se vores selvstudie om Oracle-sekvenser for at finde ud af mere.







Oracle Nextval funktion

Nextval-funktionen i en Oracle-sekvens bruges til at hente den næste værdi i en given sekvens.



Vi kan udtrykke syntaksen for funktionen som vist i følgende kodestykke:



sekvensnavn.næsteval

Funktionen accepterer ikke noget argument eller parameter. Det returnerer derefter den næste værdi i den definerede rækkefølge.





Eksempel funktionsdemonstration

Lad os tage et eksempel i betragtning. Vi starter med at definere en simpel Oracle-sekvens som vist i følgende kode:

CREATE SEQUENCE test_sequence
START MED 1
FORØG MED 1 ;

Vi bruger CREATE SEQUENCE-sætningen til at initialisere en ny Oracle-sekvens. Vi definerer derefter, ved hvilken værdi sekvensen starter, og stigningsværdien for hver ny genereret værdi.



I vores eksempel starter test_sequence ved værdien 1 og stiger med én for hver ny værdi. Dette skulle generere en række numeriske værdier, der starter ved 1,2,3,4,5...osv.

Brug af Oracle Nextval-funktionen

Vi kan bruge den næste værdi-funktion fra test_sequence-sekvensen for at få den næste værdi, som vist i følgende:

Vælg test_sequence.nextval fra dual;

Dette skulle returnere den næste værdi fra sekvensen som vist i følgende:

Hvis du kalder sætningen igen, skulle den returnere den næste værdi i serien, som er 2.

Dette fortsætter, indtil værdierne er opbrugt, eller du rammer den maksimale værdi, som er defineret i sekvensen. Se vores Oracle-sekvensvejledning for at lære, hvordan du indstiller minimums- og maksimumværdierne.

Brug af Nextval-funktionen til at sløjfe over værdier

Vi kan også bruge nextval-funktionen til at udskrive tallene fra 1 til 10 som vist i følgende kode:

CREATE SEQUENCE looper_sequence
START MED 1
FORØG MED 1 ;

sæt SERVEROUTPUT til;
BEGYNDE
FOR i IN 1 .. 10
LOOP
DBMS_OUTPUT.PUT_LINE ( looper_sequence.nextval ) ;
ENDSLØKKE;
ENDE;

Den medfølgende kode opretter en ny sekvens kaldet looper_sequence, der starter ved 1 og stiger med 1 for hver ny genereret værdi.

Vi aktiverer derefter indstillingen SERVEROUTPUT, som tillader DBMS_OUTPUT-pakken at vise meddelelserne i SQL*Plus-konsollen.

Til sidst omslutter vi en for-løkke i en end/begin-sætning for at iterere over værdiintervallet fra 1 til 10. Vi kalder derefter DBMS_OUTPUT.PUT_LINE-funktionen for hver værdi i området og udskriver den næste værdi i looper_sequence-sekvensen til konsol.

Koden udskriver de næste ti værdier i looper-sekvensen. I vores tilfælde vil det være værdien fra 1 til 10 eller 11 – 20... og så videre for hvert nyt opkald.

Resulterende output :

1
2
3
4
5
6
7
8
9
10


PL / SQL-proceduren er gennemført.

Brug af Nextval-funktionen i en indsæt-erklæring

Vi kan også bruge nextval-funktionen i en insert-sætning som en primær nøgle. For eksempel:

indsætte i brugere ( id ,fornavn,kreditkort,land )
værdier ( test_sequence.nextval, 'James Smith' , '4278793631436711' , 'Forenede Arabiske Emirater' ) ;

I det givne eksempel kalder vi nextval-funktionen fra test_sequence for at indsætte værdien for id-kolonnen i tabellen.

Konklusion

I dette indlæg opdagede du, hvordan du bruger Oracle nextval-funktionen til at hente den næste værdi i en sekvens. Du lærte også, hvordan du bruger funktionen til at iterere over et sæt værdier eller til at indsætte en unik værdi i en tabelkolonne.