Funkce Oracle Sequence Nextval

Funkce Oracle Sequence Nextval



V Oracle se sekvence vztahuje k databázovému objektu, který generuje řadu číselných hodnot podle zadaného přírůstku. Sekvence se běžně používají ke generování jedinečných hodnot primárního klíče pro záznamy v databázové tabulce.

V tomto tutoriálu se naučíme, jak používat funkci NEXTVAL při práci se sekvencemi Oracle.

POZNÁMKA: Tento kurz nepokrývá základy vytváření sekvence Oracle. Další informace najdete v našem tutoriálu o sekvencích Oracle.







Funkce Oracle Nextval

Funkce nextval v sekvenci Oracle se používá k načtení další hodnoty v dané sekvenci.



Můžeme vyjádřit syntaxi funkce, jak je znázorněno v následujícím úryvku kódu:



název_sekvence.další

Funkce nepřijímá žádný argument ani parametr. Poté vrátí další hodnotu v definovaném pořadí.





Příklad Demonstrace funkce

Vezměme v úvahu příklad. Začneme definováním jednoduché sekvence Oracle, jak je znázorněno v následujícím kódu:

CREATE SEQUENCE testovací_sekvence
ZAČÍT S 1
PŘÍRŮST O 1 ;

K inicializaci nové sekvence Oracle používáme příkaz CREATE SEQUENCE. Poté definujeme, na jaké hodnotě sekvence začíná a hodnotu přírůstku pro každou nově vygenerovanou hodnotu.



V našem příkladu začíná test_sequence na hodnotě 1 a na každé nové hodnotě se zvyšuje o jednu. To by mělo generovat řadu číselných hodnot začínajících na 1,2,3,4,5…atd.

Použití funkce Oracle Nextval

K získání další hodnoty můžeme použít funkci další hodnoty ze sekvence test_sequence, jak je znázorněno v následujícím:

vybrat test_sekvence.nextval z dual;

To by mělo vrátit další hodnotu ze sekvence, jak je znázorněno v následujícím:

Pokud příkaz zavoláte znovu, měl by vrátit další hodnotu v řadě, která je 2.

Toto pokračuje, dokud nejsou vyčerpány hodnoty, nebo dokud nedosáhnete maximální hodnoty, která je definována v sekvenci. Podívejte se na náš výukový program sekvence Oracle, kde se dozvíte, jak nastavit minimální a maximální hodnoty.

Použití funkce Nextval k opakování hodnot

Můžeme také použít funkci nextval k vytištění čísel od 1 do 10, jak je znázorněno v následujícím kódu:

CREATE SEQUENCE looper_sequence
ZAČÍT S 1
PŘÍRŮST O 1 ;

soubor SERVEROUTPUT zapnutý;
ZAČÍT
PRO i IN 1 .. 10
SMYČKA
DBMS_OUTPUT.PUT_LINE ( looper_sequence.nextval ) ;
KONEC SMYČKY;
KONEC;

Poskytnutý kód vytvoří novou sekvenci nazvanou looper_sequence, která začíná na 1 a zvyšuje se o 1 pro každou nově vygenerovanou hodnotu.

Poté povolíme volbu SERVEROUTPUT, která umožňuje balíčku DBMS_OUTPUT zobrazovat zprávy v konzole SQL*Plus.

Nakonec uzavřeme cyklus for do příkazu end/begin, abychom mohli iterovat v rozsahu hodnot od 1 do 10. Poté zavoláme funkci DBMS_OUTPUT.PUT_LINE pro každou hodnotu v rozsahu a vytiskneme další hodnotu v sekvenci looper_sequence do řídicí panel.

Kód vytiskne dalších deset hodnot v sekvenci looperu. V našem případě to bude hodnota od 1 do 10 nebo 11 – 20… a tak dále pro každý nový hovor.

Výsledný výstup :

1
2
3
4
5
6
7
8
9
10


PL / SQL procedura úspěšně dokončena.

Použití funkce Nextval v příkazu Insert

Jako primární klíč můžeme také použít funkci nextval v příkazu insert. Například:

Vlož do uživatelů ( id ,křestní_jméno,kreditní_karta,země )
hodnoty ( test_sequence.nextval, 'James Smith' , '4278793631436711' , 'Spojené arabské emiráty' ) ;

V uvedeném příkladu zavoláme funkci nextval z test_sequence pro vložení hodnoty pro sloupec id do tabulky.

Závěr

V tomto příspěvku jste zjistili, jak používat funkci Oracle nextval k načtení další hodnoty v sekvenci. Také jste se naučili, jak používat funkci k iteraci sady hodnot nebo k vložení jedinečné hodnoty do sloupce tabulky.