„Oracle Sequence Nextval“ funkcija

Oracle Sequence Nextval Funkcija



„Oracle“ seka nurodo duomenų bazės objektą, kuris generuoja skaitinių reikšmių seriją pagal nurodytą prieaugį. Sekos dažniausiai naudojamos generuoti unikalias pirminio rakto reikšmes įrašams duomenų bazės lentelėje.

Šioje pamokoje išmoksime naudoti NEXTVAL funkciją dirbant su Oracle sekomis.

PASTABA: ši pamoka neapima Oracle sekos kūrimo pagrindų. Norėdami sužinoti daugiau, skaitykite mūsų mokymo programą apie „Oracle“ sekas.







„Oracle Nextval“ funkcija

Funkcija nextval Oracle sekoje naudojama kitai tam tikros sekos vertei gauti.



Galime išreikšti funkcijos sintaksę, kaip parodyta šiame kodo fragmente:



sekos_pavadinimas.nextval

Funkcija nepriima jokių argumentų ar parametrų. Tada ji grąžina kitą apibrėžtos sekos reikšmę.





Funkcijos demonstravimo pavyzdys

Atsižvelgsime į pavyzdį. Pradedame apibrėždami paprastą „Oracle“ seką, kaip parodyta šiame kode:

CREATE SEQUENCE test_sequence
PRADĖTI NUO 1
PRIEDIMAS PO 1 ;

Naujai „Oracle“ sekai inicijuoti naudojame teiginį CREATE SEQUENCE. Tada apibrėžiame, kokia reikšme prasideda seka, ir kiekvienos naujos sugeneruotos vertės prieaugio vertę.



Mūsų pavyzdyje test_sequence prasideda reikšme 1 ir didėja po vieną kiekvieną naują reikšmę. Tai turėtų sugeneruoti skaitinių reikšmių seriją, prasidedančią nuo 1, 2, 3, 4, 5 ir tt.

Naudojant „Oracle Nextval“ funkciją

Galime naudoti kitos vertės funkciją iš test_sequence sekos, kad gautume kitą reikšmę, kaip parodyta toliau:

pasirinkite test_sequence.nextval iš dual;

Tai turėtų grąžinti kitą reikšmę iš sekos, kaip parodyta toliau:

Jei dar kartą iškviečiate teiginį, jis turėtų grąžinti kitą serijos reikšmę, kuri yra 2.

Tai tęsiasi tol, kol baigsis reikšmės arba pasieksite didžiausią reikšmę, apibrėžtą sekoje. Peržiūrėkite mūsų „Oracle“ sekos mokymo programą, kad sužinotumėte, kaip nustatyti mažiausią ir didžiausią reikšmes.

Funkcijos „Nextval“ naudojimas verčių perjungimui

Taip pat galime naudoti funkciją nextval norėdami atspausdinti skaičius nuo 1 iki 10, kaip parodyta šiame kode:

CREATE SEQUENCE looper_sequence
PRADĖTI NUO 1
PRIEDIMAS PO 1 ;

rinkinys SERVEROUTPUT įjungtas;
PRADĖTI
DĖL MAN Į 1 .. 10
KILPA
DBMS_OUTPUT.PUT_LINE ( looper_sequence.nextval ) ;
END KIPA;
GALAS;

Pateiktas kodas sukuria naują seką, vadinamą looper_sequence, kuri prasideda nuo 1 ir didėja 1 kiekvienai naujai sugeneruotai vertei.

Tada įjungiame parinktį SERVEROUTPUT, kuri leidžia paketui DBMS_OUTPUT rodyti pranešimus SQL*Plus konsolėje.

Galiausiai į end/begin sakinį įtraukiame kilpą for, kad būtų galima kartoti reikšmių diapazoną nuo 1 iki 10. Tada iškviečiame funkciją DBMS_OUTPUT.PUT_LINE kiekvienai diapazono reikšmei ir išspausdiname sekančią looper_sequence sekos reikšmę į konsolė.

Kodas spausdina kitas dešimt kilpos sekos reikšmių. Mūsų atveju kiekvieno naujo skambučio vertė bus nuo 1 iki 10 arba 11 – 20... ir taip toliau.

Rezultatas :

1
2
3
4
5
6
7
8
9
10


PL / SQL procedūra sėkmingai baigta.

Funkcijos Nextval naudojimas įterpimo teiginyje

Taip pat galime naudoti funkciją nextval įterpimo sakinyje kaip pirminį raktą. Pavyzdžiui:

įkišti į vartotojų ( id ,vardas,kredito_kortelė,šalis )
vertybes ( test_sequence.nextval, 'James Smith' , „4278793631436711“ , 'Jungtiniai Arabų Emyratai' ) ;

Pateiktame pavyzdyje mes iškviečiame funkciją nextval iš test_sequence, kad įterptume id stulpelio reikšmę lentelėje.

Išvada

Šiame įraše sužinojote, kaip naudoti „Oracle nextval“ funkciją norint gauti kitą sekos reikšmę. Taip pat sužinojote, kaip naudoti funkciją reikšmių rinkiniui kartoti arba įterpti unikalią reikšmę lentelės stulpelyje.