Oracle Sequence Nextval Function

Oracle Sequence Nextval Function



Oraclessa sekvenssi viittaa tietokantaobjektiin, joka luo sarjan numeerisia arvoja tietyn lisäyksen mukaisesti. Sekvenssejä käytetään yleisesti luomaan ainutlaatuiset ensisijaiset avainarvot tietokantataulukon tietueille.

Tässä opetusohjelmassa opimme käyttämään NEXTVAL-funktiota, kun työskentelet Oracle-sekvenssien kanssa.

HUOMAUTUS: Tämä opetusohjelma ei kata Oracle-sekvenssin luomisen perusteita. Katso lisää Oracle-sekvenssejä käsittelevästä opetusohjelmastamme.







Oracle Nextval -funktio

Oracle-sekvenssin nextval-funktiota käytetään seuraavan arvon hakemiseen tietyssä sekvenssissä.



Voimme ilmaista funktion syntaksin seuraavan koodinpätkän mukaisesti:



sekvenssin_nimi.seuraava

Funktio ei hyväksy argumentteja tai parametreja. Sitten se palauttaa määritetyn sekvenssin seuraavan arvon.





Esimerkki toiminnon esittelystä

Otetaan esimerkkiä. Aloitamme määrittelemällä yksinkertaisen Oracle-sekvenssin seuraavan koodin mukaisesti:

CREATE SEQUENCE test_sequence
ALOITA 1
LISÄYS 1 ;

Käytämme CREATE SEQUENCE -käskyä uuden Oracle-sekvenssin alustamiseen. Määritämme sitten, mistä arvosta sekvenssi alkaa, ja lisäysarvon jokaiselle uudelle luodulle arvolle.



Esimerkissämme test_sequence alkaa arvosta 1 ja kasvaa yhdellä jokaisen uuden arvon kohdalla. Tämän pitäisi tuottaa sarja numeerisia arvoja alkaen 1,2,3,4,5… jne.

Oracle Nextval -funktion käyttäminen

Voimme käyttää test_sequence-sekvenssin seuraavan arvon funktiota seuraavan arvon saamiseksi, kuten seuraavassa esitetään:

valitse test_sequence.nextval osoitteesta dual;

Tämän pitäisi palauttaa sekvenssin seuraava arvo seuraavassa esitetyllä tavalla:

Jos kutsut lausetta uudelleen, sen pitäisi palauttaa sarjan seuraava arvo, joka on 2.

Tämä jatkuu, kunnes arvot ovat kuluneet loppuun tai saavutat sarjassa määritetyn enimmäisarvon. Tutustu Oracle-sekvenssin opetusohjelmaan saadaksesi lisätietoja vähimmäis- ja enimmäisarvojen asettamisesta.

Nextval-funktion käyttö arvojen silmukoimiseen

Voimme myös käyttää nextval-toimintoa tulostamaan numerot 1-10 seuraavan koodin mukaisesti:

LUO SEQUENCE looper_sequence
ALOITA 1
LISÄYS 1 ;

aseta SERVEROUTPUT päällä;
ALKAA
MINULLE SISÄÄN 1 .. 10
LOOP
DBMS_OUTPUT.PUT_LINE ( looper_sequence.nextval ) ;
END LOOP;
END;

Annettu koodi luo uuden sekvenssin nimeltä looper_sequence, joka alkaa luvusta 1 ja kasvaa 1:llä jokaista uutta luotua arvoa kohti.

Otamme sitten käyttöön SERVEROUTPUT-vaihtoehdon, jonka avulla DBMS_OUTPUT-paketti voi näyttää viestit SQL*Plus-konsolissa.

Lopuksi lisäämme end/begin-käskyn sisään for-silmukan toistamaan arvoaluetta 1-10. Kutsumme sitten DBMS_OUTPUT.PUT_LINE-funktiota jokaiselle alueen arvolle ja tulostamme seuraavan arvon looper_sequence-sekvenssissä konsoli.

Koodi tulostaa seuraavat kymmenen arvoa looper-sekvenssissä. Meidän tapauksessamme se on arvo 1-10 tai 11-20… ja niin edelleen jokaiselle uudelle puhelulle.

Tuloksena oleva tulos :

1
2
3
4
5
6
7
8
9
10


PL / SQL-menettely suoritettu onnistuneesti.

Nextval-funktion käyttäminen lisäyslausekkeessa

Voimme myös käyttää nextval-funktiota insert-käskyssä ensisijaisena avaimena. Esimerkiksi:

laittaa sisään käyttäjiä ( id ,etunimi,luottokortti,maa )
arvot ( test_sequence.nextval, 'James Smith' , '4278793631436711' , 'Yhdistyneet Arabiemiirikunnat' ) ;

Annetussa esimerkissä kutsumme nextval-funktiota test_sequence-funktiosta lisätäksesi id-sarakkeen arvon taulukkoon.

Johtopäätös

Tässä viestissä huomasit, kuinka Oracle nextval -funktiota käytetään sarjan seuraavan arvon hakemiseen. Opit myös käyttämään funktiota arvojoukon iterointiin tai yksilöllisen arvon lisäämiseen taulukon sarakkeeseen.