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 inkrement. Sekvenser brukes vanligvis til å generere de unike primærnøkkelverdiene for poster i en databasetabell.

I denne opplæringen lærer vi hvordan du bruker NEXTVAL-funksjonen når du arbeider med Oracle-sekvenser.

MERK: Denne opplæringen dekker ikke det grunnleggende om å lage en Oracle-sekvens. Se veiledningen vår om Oracle-sekvenser for å finne ut mer.







Oracle Nextval-funksjon

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



Vi kan uttrykke syntaksen til funksjonen som vist i følgende kodebit:



sekvensnavn.nesteval

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





Eksempel på funksjonsdemonstrasjon

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

CREATE SEQUENCE test_sequence
STARTE MED 1
ØK MED 1 ;

Vi bruker CREATE SEQUENCE-setningen for å initialisere en ny Oracle-sekvens. Vi definerer deretter ved hvilken verdi sekvensen starter og økningsverdien for hver ny generert verdi.



I vårt eksempel starter test_sequence med verdien 1 og øker med én for hver ny verdi. Dette bør generere en serie med numeriske verdier som starter på 1,2,3,4,5...osv.

Bruke Oracle Nextval-funksjonen

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

plukke ut test_sequence.nextval fra dual;

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

Hvis du kaller setningen igjen, skal den returnere neste verdi i serien som er 2.

Dette fortsetter til verdiene er oppbrukt, eller du treffer den maksimale verdien som er definert i sekvensen. Sjekk vår Oracle-sekvensveiledning for å lære hvordan du angir minimums- og maksimumsverdier.

Bruke Nextval-funksjonen til å gå over verdier

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

CREATE SEQUENCE looper_sequence
STARTE MED 1
ØK MED 1 ;

sett SERVEROUTPUT på;
BEGYNNE
FOR i IN 1 .. 10
LØKKE
DBMS_OUTPUT.PUT_LINE ( looper_sequence.nextval ) ;
END LOOP;
SLUTT;

Den oppgitte koden oppretter en ny sekvens kalt looper_sequence som starter på 1 og øker med 1 for hver ny genererte verdi.

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

Til slutt legger vi en for-løkke i en end/begin-setning for å iterere over verdiområdet fra 1 til 10. Vi kaller deretter funksjonen DBMS_OUTPUT.PUT_LINE for hver verdi i området og skriver ut neste verdi i looper_sequence-sekvensen til konsoll.

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 Insert Statement

Vi kan også bruke nextval-funksjonen i en insert-setning som en primærnøkkel. For eksempel:

sette inn i brukere ( id ,fornavn,kredittkort,land )
verdier ( test_sequence.nextval, 'James Smith' , '4278793631436711' , 'De forente arabiske emirater' ) ;

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 til å sette inn en unik verdi i en tabellkolonne.