Funkcia Oracle Sequence Nextval

Funkcia Oracle Sequence Nextval



V Oracle sa sekvencia vzťahuje na databázový objekt, ktorý generuje sériu číselných hodnôt podľa určeného prírastku. Sekvencie sa bežne používajú na generovanie jedinečných hodnôt primárneho kľúča pre záznamy v databázovej tabuľke.

V tomto návode sa naučíme, ako používať funkciu NEXTVAL pri práci so sekvenciami Oracle.

POZNÁMKA: Tento tutoriál nepokrýva základy vytvárania sekvencie Oracle. Viac informácií nájdete v našom návode na sekvencie Oracle.







Funkcia Oracle Nextval

Funkcia nextval v sekvencii Oracle sa používa na získanie ďalšej hodnoty v danej sekvencii.



Môžeme vyjadriť syntax funkcie, ako je znázornené v nasledujúcom úryvku kódu:



názov_sekvencie.nextval

Funkcia neakceptuje žiadny argument ani parameter. Potom vráti nasledujúcu hodnotu v definovanom poradí.





Príklad Ukážka funkcie

Zoberme si príklad. Začneme definovaním jednoduchej sekvencie Oracle, ako je znázornené v nasledujúcom kóde:

CREATE SEQUENCE test_sequence
ZAČNITE S 1
ZVÝŠENIE O 1 ;

Na inicializáciu novej sekvencie Oracle používame príkaz CREATE SEQUENCE. Potom definujeme, pri akej hodnote sa sekvencia začína a hodnotu prírastku pre každú novú vygenerovanú hodnotu.



V našom príklade test_sequence začína na hodnote 1 a zvyšuje sa o jednu pri každej novej hodnote. Toto by malo generovať sériu číselných hodnôt začínajúcich na 1,2,3,4,5...atď.

Použitie funkcie Oracle Nextval

Na získanie ďalšej hodnoty môžeme použiť funkciu ďalšej hodnoty zo sekvencie test_sequence, ako je znázornené v nasledujúcom texte:

vyberte test_sekvencia.nextval z dual;

Toto by malo vrátiť ďalšiu hodnotu zo sekvencie, ako je znázornené v nasledujúcom texte:

Ak zavoláte príkaz znova, mal by vrátiť ďalšiu hodnotu v rade, ktorá je 2.

Toto pokračuje, kým sa hodnoty nevyčerpajú, alebo kým nedosiahnete maximálnu hodnotu, ktorá je definovaná v sekvencii. Pozrite si náš tutoriál sekvencie Oracle, kde sa dozviete, ako nastaviť minimálne a maximálne hodnoty.

Použitie funkcie Nextval na zacyklenie hodnôt

Môžeme tiež použiť funkciu nextval na vytlačenie čísel od 1 do 10, ako je znázornené v nasledujúcom kóde:

CREATE SEQUENCE looper_sequence
ZAČNITE S 1
ZVÝŠENIE O 1 ;

nastaviť SERVEROUTPUT zapnutý;
ZAČAŤ
PRE i IN 1 .. 10
LOOP
DBMS_OUTPUT.PUT_LINE ( looper_sequence.nextval ) ;
KONCOVÁ SLUČKA;
KONIEC;

Poskytnutý kód vytvorí novú sekvenciu s názvom looper_sequence, ktorá začína na 1 a zvyšuje sa o 1 pre každú novú vygenerovanú hodnotu.

Potom povolíme možnosť SERVEROUTPUT, ktorá umožňuje balíku DBMS_OUTPUT zobrazovať správy v konzole SQL*Plus.

Nakoniec uzatvoríme cyklus for do príkazu end/begin, aby sme iterovali v rozsahu hodnôt od 1 do 10. Potom zavoláme funkciu DBMS_OUTPUT.PUT_LINE pre každú hodnotu v rozsahu a vytlačíme ďalšiu hodnotu v sekvencii looper_sequence do konzoly.

Kód vytlačí nasledujúcich desať hodnôt v sekvencii slučky. V našom prípade to bude hodnota od 1 do 10 alebo 11 – 20… a tak ďalej pre každý nový hovor.

Výsledný výstup :

1
2
3
4
5
6
7
8
9
10


PL / SQL procedúra úspešne dokončená.

Použitie funkcie Nextval vo vložení príkazu

Funkciu nextval môžeme použiť aj v príkaze insert ako primárny kľúč. Napríklad:

vložiť do používateľov ( id ,krstné_meno,kreditná_karta,krajina )
hodnoty ( test_sequence.nextval, 'James Smith' , '4278793631436711' , 'Spojené Arabské Emiráty' ) ;

V uvedenom príklade zavoláme funkciu nextval z test_sequence na vloženie hodnoty pre stĺpec id do tabuľky.

Záver

V tomto príspevku ste zistili, ako použiť funkciu Oracle nextval na získanie ďalšej hodnoty v poradí. Tiež ste sa naučili, ako používať funkciu na iteráciu množiny hodnôt alebo na vloženie jedinečnej hodnoty do stĺpca tabuľky.