U ovom vodiču naučit ćemo kako koristiti funkciju NEXTVAL pri radu s Oracle sekvencama.
NAPOMENA: Ovaj vodič ne pokriva osnove stvaranja Oracle sekvence. Pogledajte naš vodič o Oracle sekvencama da biste otkrili više.
Oracleova funkcija Nextval
Funkcija nextval u Oracle nizu koristi se za dohvaćanje sljedeće vrijednosti u danom nizu.
Sintaksu funkcije možemo izraziti kao što je prikazano u sljedećem isječku koda:
naziv_sekvence.nextval
Funkcija ne prihvaća nijedan argument ili parametar. Zatim vraća sljedeću vrijednost u definiranom nizu.
Primjer demonstracije funkcije
Uzmimo u obzir primjer. Počinjemo definiranjem jednostavnog Oracle niza kao što je prikazano u sljedećem kodu:
CREATE SEQUENCE test_sequencePOČETI SA 1
POVEĆAJ ZA 1 ;
Koristimo naredbu CREATE SEQUENCE za inicijalizaciju nove Oracle sekvence. Zatim definiramo od koje vrijednosti niz počinje i vrijednost povećanja za svaku novu generiranu vrijednost.
U našem primjeru, test_sequence počinje od vrijednosti 1 i povećava se za jedan na svakoj novoj vrijednosti. Ovo bi trebalo generirati niz numeričkih vrijednosti počevši od 1,2,3,4,5…itd.
Korištenje Oracle Nextval funkcije
Možemo upotrijebiti funkciju sljedeće vrijednosti iz niza test_sequence da dobijemo sljedeću vrijednost, kao što je prikazano u nastavku:
Izaberi test_sequence.nextval iz dual;Ovo bi trebalo vratiti sljedeću vrijednost iz niza kao što je prikazano u nastavku:
Ako ponovno pozovete naredbu, ona bi trebala vratiti sljedeću vrijednost u nizu koja je 2.
To se nastavlja sve dok se vrijednosti ne potroše ili dok ne dosegnete maksimalnu vrijednost definiranu u nizu. Pogledajte naš vodič za Oracle slijed kako biste naučili kako postaviti minimalne i maksimalne vrijednosti.
Korištenje funkcije Nextval za ponavljanje vrijednosti
Također možemo koristiti funkciju nextval za ispis brojeva od 1 do 10 kao što je prikazano u sljedećem kodu:
STVARAJ NIZ looper_sequencePOČETI SA 1
POVEĆAJ ZA 1 ;
postaviti SERVEROUTPUT uključen;
POČETI
ZA i IN 1 .. 10
PETLJA
DBMS_OUTPUT.PUT_LINE ( petlja_slijed.nextval ) ;
ZAVRŠNA PETLJA;
KRAJ;
Navedeni kod stvara novi niz pod nazivom looper_sequence koji počinje od 1 i povećava se za 1 za svaku novu generiranu vrijednost.
Zatim omogućujemo opciju SERVEROUTPUT koja paketu DBMS_OUTPUT omogućuje prikaz poruka u SQL*Plus konzoli.
Na kraju, prilažemo for petlju unutar end/begin naredbe za iteraciju kroz raspon vrijednosti od 1 do 10. Zatim pozivamo funkciju DBMS_OUTPUT.PUT_LINE za svaku vrijednost u rasponu i ispisujemo sljedeću vrijednost u nizu looper_sequence u konzola.
Kod ispisuje sljedećih deset vrijednosti u nizu petlje. U našem slučaju to će biti vrijednost od 1 do 10 ili 11 – 20… i tako redom za svaki novi poziv.
Rezultirajući izlaz :
12
3
4
5
6
7
8
9
10
PL / SQL procedura uspješno završena.
Korištenje funkcije Nextval u naredbi Insert
Također možemo koristiti funkciju nextval u naredbi za umetanje kao primarni ključ. Na primjer:
umetnuti u korisnika ( iskaznica ,ime,kreditna_kartica,država )vrijednosti ( test_sequence.nextval, 'James Smith' , '4278793631436711' , 'Ujedinjeni Arapski Emirati' ) ;
U navedenom primjeru pozivamo funkciju nextval iz test_sequence da bismo u tablicu umetnuli vrijednost za stupac id.
Zaključak
U ovom ste postu otkrili kako koristiti Oracle nextval funkciju za dohvaćanje sljedeće vrijednosti u nizu. Također ste naučili kako koristiti funkciju za ponavljanje skupa vrijednosti ili za umetanje jedinstvene vrijednosti u stupac tablice.