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.