Š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_sequencePRADĖ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_sequencePRADĖ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 :
12
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.