Oracle Sequence NextVal -funksjon

Oracle Sequence NextVal -funksjon
I Oracle refererer en sekvens til et databaseobjekt som genererer en serie numeriske verdier i henhold til et spesifisert økning. Sekvenser brukes ofte til å generere de unike primære nøkkelverdiene for poster i en databasetabell.

I denne opplæringen lærer vi hvordan du bruker NextVal -funksjonen når du jobber med Oracle Sequences.

Merk: Denne opplæringen dekker ikke det grunnleggende om å lage en Oracle -sekvens. Se vår opplæring om Oracle -sekvenser for å oppdage mer.

Oracle NextVal -funksjon

NextVal -funksjonen i en Oracle -sekvens brukes til å hente neste verdi i en gitt sekvens.

Vi kan uttrykke syntaks for funksjonen som vist i følgende kodebit:

Sekvensnavn.NextVal

Funksjonen godtar ikke noe argument eller parameter. Den returnerer deretter neste verdi i den definerte sekvensen.

Eksempelfunksjon Demonstrasjon

La oss ta hensyn til et eksempel på et eksempel. Vi starter med å definere en enkel Oracle -sekvens som vist i følgende kode:

Lag sekvens test_sequence
Start med 1
Økning med 1;

Vi bruker Create Sequence -setningen for å initialisere en ny Oracle -sekvens. Vi definerer deretter hvilken verdi sekvensen starter og økningsverdien for hver nye genererte verdi.

I vårt eksempel starter test_sequence til verdien av 1 og trinn med en på hver nye verdi. Dette skal generere en serie numeriske verdier som starter ved 1,2,3,4,5 ... etc.

Bruke Oracle NextVal -funksjonen

Vi kan bruke den neste verdifunksjonen fra test_sequence -sekvensen for å få neste verdi, som vist i det følgende:

Velg test_sequence.NextVal fra dual;

Dette skal returnere neste verdi fra sekvensen som vist på følgende:

Hvis du ringer uttalelsen igjen, bør den returnere neste verdi i serien som er 2.

Dette fortsetter til verdiene er utmattet, eller du treffer maksimalverdien som er definert i sekvensen. Sjekk vår Oracle Sequence -opplæring for å lære hvordan du angir minimums- og maksimumsverdier.

Bruke NextVal -funksjonen for å sløyfe over verdier

Vi kan også bruke NextVal -funksjonen til å skrive ut tallene fra 1 til 10 som vist i følgende kode:

Lag sekvens looper_sequence
Start med 1
Økning med 1;
angi serverOutput på;
BEGYNNE
For jeg i 1… 10
LØKKE
Dbms_output.Put_line (looper_sequence.NextVal);
Endesløyfe;
SLUTT;

Den medfølgende koden oppretter en ny sekvens kalt looper_sequence som starter på 1 og trinn med 1 for hver nye genererte verdi.

Vi aktiverer deretter ServerOutput -alternativet som lar DBMS_Output -pakken vise meldingene i SQL*Plus -konsollen.

Til slutt omslutter vi en for sløyfe i en slutt/begynnende uttalelse for å iterere over verdiene fra 1 til 10. Vi kaller da DBMS_Output.Put_line -funksjonen for hver verdi i området og skriv ut neste verdi i looper_sequence -sekvensen til konsollen.

Koden skriver ut de neste ti verdiene i Looper -sekvensen. I vårt tilfelle vil det være verdien fra 1 til 10 eller 11 - 20 ... og så videre for hver nye samtale.

Resulterende utgang:

1
2
3
4
5
6
7
8
9
10
PL/SQL -prosedyre fullført.

Bruke NextVal -funksjonen i en innsatserklæring

Vi kan også bruke NextVal -funksjonen i en innsatserklæring som en primærnøkkel. For eksempel:

Sett inn brukere (ID, First_name, Credit_card, Country)
Verdier (test_sequence.NextVal, 'James Smith', '4278793631436711', 'United Arab Emirates');

I det gitte eksemplet kaller vi NextVal -funksjonen fra test_sequence for å sette inn verdien for ID -kolonnen i tabellen.

Konklusjon

I dette innlegget oppdaget du hvordan du bruker Oracle NextVal -funksjonen for å hente neste verdi i en sekvens. Du lærte også hvordan du bruker funksjonen til å iterere over et sett med verdier eller å sette inn en unik verdi i en tabellkolonne.