Funkcja Oracle Sequence Nextval

Funkcja Oracle Sequence Nextval



W Oracle sekwencja odnosi się do obiektu bazy danych, który generuje serię wartości liczbowych zgodnie z określonym przyrostem. Sekwencje są powszechnie używane do generowania unikalnych wartości klucza podstawowego dla rekordów w tabeli bazy danych.

W tym samouczku nauczymy się, jak używać funkcji NEXTVAL podczas pracy z sekwencjami Oracle.

UWAGA: Ten samouczek nie obejmuje podstaw tworzenia sekwencji Oracle. Zapoznaj się z naszym samouczkiem dotyczącym sekwencji Oracle, aby dowiedzieć się więcej.







Funkcja Oracle Nextval

Funkcja nextval w sekwencji Oracle służy do pobierania następnej wartości w danej sekwencji.



Możemy wyrazić składnię funkcji, jak pokazano w poniższym fragmencie kodu:



nazwa_sekwencji.następna wartość

Funkcja nie przyjmuje żadnych argumentów ani parametrów. Następnie zwraca następną wartość w zdefiniowanej sekwencji.





Przykładowa demonstracja funkcji

Weźmy pod uwagę przykład. Zaczynamy od zdefiniowania prostej sekwencji Oracle, jak pokazano w poniższym kodzie:

UTWÓRZ SEKWENCJĘ sekwencja_testowa
ZACZĄĆ OD 1
PRZYROST O 1 ;

Używamy instrukcji CREATE SEQUENCE do zainicjowania nowej sekwencji Oracle. Następnie określamy, od jakiej wartości rozpoczyna się sekwencja oraz wartość przyrostu dla każdej nowo wygenerowanej wartości.



W naszym przykładzie test_sequence zaczyna się od wartości 1 i zwiększa się o jeden przy każdej nowej wartości. Powinno to wygenerować serię wartości liczbowych zaczynających się od 1,2,3,4,5…itp.

Korzystanie z funkcji Oracle Nextval

Możemy użyć funkcji następnej wartości z sekwencji test_sequence, aby uzyskać następną wartość, jak pokazano poniżej:

wybierać test_sequence.nextval z podwójnego;

Powinno to zwrócić następną wartość z sekwencji, jak pokazano poniżej:

Jeśli ponownie wywołasz instrukcję, powinna ona zwrócić następną wartość w serii, czyli 2.

Trwa to do wyczerpania wartości lub osiągnięcia maksymalnej wartości zdefiniowanej w sekwencji. Sprawdź nasz samouczek sekwencji Oracle, aby dowiedzieć się, jak ustawić wartości minimalne i maksymalne.

Używanie funkcji Nextval do zapętlania wartości

Możemy również użyć funkcji nextval, aby wydrukować liczby od 1 do 10, jak pokazano w poniższym kodzie:

UTWÓRZ SEKWENCJĘ looper_sequence
ZACZĄĆ OD 1
PRZYROST O 1 ;

ustawić WYJŚCIE SERWERA włączone;
ROZPOCZĄĆ
DLA I W 1 .. 10
PĘTLA
DBMS_OUTPUT.PUT_LINE ( looper_sequence.następna wartość ) ;
KONIEC PĘTLI;
KOŃCZYĆ SIĘ;

Dostarczony kod tworzy nową sekwencję o nazwie looper_sequence, która zaczyna się od 1 i zwiększa się o 1 dla każdej nowo wygenerowanej wartości.

Następnie włączamy opcję SERVEROUTPUT, która pozwala pakietowi DBMS_OUTPUT wyświetlać komunikaty w konsoli SQL*Plus.

Na koniec umieszczamy pętlę for wewnątrz instrukcji end/begin, aby iterować w zakresie wartości od 1 do 10. Następnie wywołujemy funkcję DBMS_OUTPUT.PUT_LINE dla każdej wartości w zakresie i drukujemy następną wartość w sekwencji looper_sequence do konsola.

Kod drukuje następne dziesięć wartości w sekwencji pętli. W naszym przypadku będzie to wartość od 1 do 10 lub 11 – 20… i tak dalej dla każdego nowego połączenia.

Wynikowy wynik :

1
2
3
4
5
6
7
8
9
10


PL / Procedura SQL została pomyślnie zakończona.

Używanie funkcji Nextval w instrukcji wstawiania

Możemy również użyć funkcji nextval w instrukcji insert jako klucza podstawowego. Na przykład:

włóż w użytkownicy ( ID ,imię,karta_kredytowa,kraj )
wartości ( test_sekwencja.następna wartość, „James Smith” , '4278793631436711' , 'Zjednoczone Emiraty Arabskie' ) ;

W podanym przykładzie wywołujemy funkcję nextval z sekwencji test_sequence, aby wstawić wartość dla kolumny id w tabeli.

Wniosek

W tym poście odkryłeś, jak używać funkcji Oracle nextval do pobierania następnej wartości w sekwencji. Nauczyłeś się również, jak używać tej funkcji do iteracji po zbiorze wartości lub do wstawiania unikalnej wartości w kolumnie tabeli.