Oracle Sequence Nextval-Funktion

Oracle Sequence Nextval Funktion



In Oracle bezieht sich eine Sequenz auf ein Datenbankobjekt, das eine Reihe von numerischen Werten gemäß einem angegebenen Inkrement generiert. Sequenzen werden häufig verwendet, um die eindeutigen Primärschlüsselwerte für Datensätze in einer Datenbanktabelle zu generieren.

In diesem Tutorial lernen wir, wie Sie die NEXTVAL-Funktion verwenden, wenn Sie mit Oracle-Sequenzen arbeiten.

HINWEIS: Dieses Tutorial behandelt nicht die Grundlagen zum Erstellen einer Oracle-Sequenz. Weitere Informationen finden Sie in unserem Tutorial zu Oracle-Sequenzen.







Oracle Nextval-Funktion

Die nextval-Funktion in einer Oracle-Sequenz wird verwendet, um den nächsten Wert in einer bestimmten Sequenz abzurufen.



Wir können die Syntax der Funktion wie im folgenden Codeausschnitt gezeigt ausdrücken:



Sequenzname.nächsterWert

Die Funktion akzeptiert keine Argumente oder Parameter. Es gibt dann den nächsten Wert in der definierten Reihenfolge zurück.





Beispiel Funktionsdemonstration

Betrachten wir ein Beispiel. Wir beginnen mit der Definition einer einfachen Oracle-Sequenz, wie im folgenden Code gezeigt:

SEQUENCE ERSTELLEN test_sequence
BEGINNEN MIT 1
INKREMENT UM 1 ;

Wir verwenden die CREATE SEQUENCE-Anweisung, um eine neue Oracle-Sequenz zu initialisieren. Wir definieren dann, bei welchem ​​Wert die Sequenz beginnt und den Inkrementwert für jeden neu generierten Wert.



In unserem Beispiel beginnt die test_sequence beim Wert 1 und wird bei jedem neuen Wert um eins erhöht. Dies sollte eine Reihe von numerischen Werten erzeugen, die bei 1,2,3,4,5 usw. beginnen.

Verwenden der Oracle Nextval-Funktion

Wir können die Funktion next value aus der Sequenz test_sequence verwenden, um den nächsten Wert zu erhalten, wie im Folgenden gezeigt:

wählen test_sequence.nextval von dual;

Dies sollte den nächsten Wert aus der Sequenz zurückgeben, wie im Folgenden gezeigt:

Wenn Sie die Anweisung erneut aufrufen, sollte sie den nächsten Wert in der Reihe zurückgeben, der 2 ist.

Dies wird so lange fortgesetzt, bis die Werte erschöpft sind oder Sie den in der Sequenz definierten Maximalwert erreichen. In unserem Oracle-Sequenz-Tutorial erfahren Sie, wie Sie die Mindest- und Höchstwerte festlegen.

Verwenden der Nextval-Funktion zum Schleifen von Werten

Wir können auch die Funktion nextval verwenden, um die Zahlen von 1 bis 10 auszugeben, wie im folgenden Code gezeigt:

SEQUENCE ERSTELLEN looper_sequence
BEGINNEN MIT 1
INKREMENT UM 1 ;

einstellen SERVERAUSGANG an;
START
FÜR ich IN 1 .. 10
SCHLEIFE
DBMS_OUTPUT.PUT_LINE ( looper_sequence.nextval ) ;
SCHLEIFE ENDE;
ENDE;

Der bereitgestellte Code erstellt eine neue Sequenz namens looper_sequence, die bei 1 beginnt und für jeden neu generierten Wert um 1 erhöht wird.

Anschließend aktivieren wir die Option SERVEROUTPUT, die es dem DBMS_OUTPUT-Paket ermöglicht, die Meldungen in der SQL*Plus-Konsole anzuzeigen.

Schließlich schließen wir eine for-Schleife in eine end/begin-Anweisung ein, um den Wertebereich von 1 bis 10 zu durchlaufen. Dann rufen wir die DBMS_OUTPUT.PUT_LINE-Funktion für jeden Wert im Bereich auf und geben den nächsten Wert in der looper_sequence-Sequenz an die aus Konsole.

Der Code gibt die nächsten zehn Werte in der Looper-Sequenz aus. In unserem Fall ist es der Wert von 1 bis 10 oder 11 – 20 … und so weiter für jeden neuen Anruf.

Resultierende Ausgabe :

1
2
3
4
5
6
7
8
9
10


PL / SQL-Prozedur erfolgreich abgeschlossen.

Verwenden der Nextval-Funktion in einer Insert-Anweisung

Wir können die nextval-Funktion auch in einer Insert-Anweisung als Primärschlüssel verwenden. Zum Beispiel:

einfügen in Benutzer ( Ich würde ,Vorname,Kreditkarte,Land )
Werte ( test_sequence.nextval, 'James Smith' , '4278793631436711' , 'Vereinigte Arabische Emirate' ) ;

Im gegebenen Beispiel rufen wir die Funktion nextval aus test_sequence auf, um den Wert für die Spalte id in die Tabelle einzufügen.

Fazit

In diesem Beitrag haben Sie entdeckt, wie Sie die Oracle-Funktion nextval verwenden, um den nächsten Wert in einer Sequenz abzurufen. Sie haben auch gelernt, wie Sie die Funktion verwenden, um eine Reihe von Werten zu durchlaufen oder einen eindeutigen Wert in eine Tabellenspalte einzufügen.