Semantics
schema
Spezifizieren Sie das Schema, das die Sequenz enthalten soll. Wenn Sie schema
weglassen, erstellt Oracle Database die Sequenz in Ihrem eigenen Schema.
Sequenz
Spezifizieren Sie den Namen der zu erstellenden Sequenz.
Wenn Sie keine der folgenden Klauseln angeben, erstellen Sie eine aufsteigende Sequenz, die mit 1 beginnt und um 1 erhöht wird, ohne Obergrenze. Wenn Sie nur INCREMENT
BY
-1 angeben, wird eine absteigende Sequenz erstellt, die mit -1 beginnt und ohne Untergrenze absteigt.
-
Um eine Sequenz zu erstellen, die ohne Begrenzung aufsteigt, lassen Sie bei aufsteigenden Sequenzen den Parameter
MAXVALUE
weg oder geben SieNOMAXVALUE
an. Für absteigende Sequenzen lassen Sie den ParameterMINVALUE
weg oder geben SieNOMINVALUE
an. -
Um eine Sequenz zu erstellen, die an einer vordefinierten Grenze stoppt, geben Sie für eine aufsteigende Sequenz einen Wert für den Parameter
MAXVALUE
an. Für eine absteigende Sequenz geben Sie einen Wert für den ParameterMINVALUE
an. Geben Sie auchNOCYCLE
an. Jeder Versuch, eine Sequenznummer zu generieren, wenn die Sequenz ihr Limit erreicht hat, führt zu einem Fehler. -
Um eine Sequenz zu erstellen, die nach Erreichen eines vordefinierten Limits neu beginnt, geben Sie Werte für die Parameter
MAXVALUE
undMINVALUE
an. Geben Sie auchCYCLE
an. Wenn SieMINVALUE
nicht angeben, wird der StandardwertNOMINVALUE
verwendet, der dem Wert 1 entspricht.
INCREMENT BY Geben Sie das Intervall zwischen den Sequenznummern an. Dieser ganzzahlige Wert kann eine beliebige positive oder negative ganze Zahl sein, darf aber nicht 0 sein. Dieser Wert kann 28 oder weniger Ziffern haben. Der Absolutwert dieses Wertes muss kleiner sein als die Differenz von MAXVALUE
und MINVALUE
. Ist dieser Wert negativ, so ist die Folge absteigend. Ist der Wert positiv, dann steigt die Folge aufwärts. Wenn Sie diese Klausel weglassen, ist das Intervall standardmäßig 1.
START WITH Geben Sie die erste zu erzeugende Sequenznummer an. Verwenden Sie diese Klausel, um eine aufsteigende Sequenz mit einem Wert zu beginnen, der größer als ihr Minimum ist, oder um eine absteigende Sequenz mit einem Wert zu beginnen, der kleiner als ihr Maximum ist. Bei aufsteigenden Sequenzen ist der Standardwert der Mindestwert der Sequenz. Für absteigende Sequenzen ist der Standardwert der Maximalwert der Sequenz. Dieser ganzzahlige Wert kann 28 oder weniger Ziffern haben.
Hinweis:
Dieser Wert ist nicht notwendigerweise der Wert, auf den eine aufsteigende zyklische Sequenz nach Erreichen ihres Höchst- oder Mindestwerts zurückgeht.
MAXWERT Geben Sie den Höchstwert an, den die Sequenz erzeugen kann. Dieser ganzzahlige Wert kann 28 oder weniger Ziffern haben. MAXVALUE
muss gleich oder größer sein als START
WITH
und muss größer sein als MINVALUE
.
NOMAXVALUE Geben Sie NOMAXVALUE
an, um einen Höchstwert von 1027 für eine aufsteigende Sequenz oder -1 für eine absteigende Sequenz anzugeben. Dies ist der Standardwert.
MINVALUE Geben Sie den Mindestwert der Sequenz an. Dieser ganzzahlige Wert kann 28 oder weniger Ziffern haben. MINVALUE
muss kleiner oder gleich START
WITH
und kleiner als MAXVALUE
sein.
NOMINVALUE Geben Sie NOMINVALUE
an, um einen Mindestwert von 1 für eine aufsteigende Sequenz oder -1026 für eine absteigende Sequenz anzugeben. Dies ist die Standardeinstellung.
CYCLE Geben Sie CYCLE
an, um anzugeben, dass die Sequenz nach Erreichen ihres Höchst- oder Mindestwerts weiterhin Werte erzeugt. Nachdem eine aufsteigende Sequenz ihren Maximalwert erreicht hat, erzeugt sie ihren Minimalwert. Nachdem eine absteigende Sequenz ihren Minimalwert erreicht hat, erzeugt sie ihren Maximalwert.
NOCYCLE Geben Sie NOCYCLE
an, um anzugeben, dass die Sequenz nach Erreichen ihres Maximal- oder Minimalwerts keine weiteren Werte mehr erzeugen kann. Dies ist der Standardwert.
CACHE Geben Sie an, wie viele Werte der Sequenz die Datenbank im Voraus zuweist und für einen schnelleren Zugriff im Speicher hält. Dieser Ganzzahlwert kann 28 oder weniger Ziffern haben. Der Mindestwert für diesen Parameter ist 2. Bei Sequenzen, die einen Zyklus durchlaufen, muss dieser Wert kleiner sein als die Anzahl der Werte im Zyklus. Sie können nicht mehr Werte zwischenspeichern, als in einen bestimmten Zyklus von Sequenznummern passen. Daher muss der maximal zulässige Wert für CACHE
kleiner sein als der Wert, der durch die folgende Formel bestimmt wird:
(CEIL (MAXVALUE - MINVALUE)) / ABS (INCREMENT)
Wenn ein Systemfehler auftritt, gehen alle zwischengespeicherten Sequenzwerte, die nicht in bestätigten DML-Anweisungen verwendet wurden, verloren. Die potenzielle Anzahl der verlorenen Werte entspricht dem Wert des Parameters CACHE
.
Hinweis:
Oracle empfiehlt die Verwendung der Einstellung CACHE
, um die Leistung zu verbessern, wenn Sie Sequenzen in einer Oracle Real Application Clusters-Umgebung verwenden.
NOCACHE Geben Sie NOCACHE
an, um anzugeben, dass die Werte der Sequenz nicht vorab zugewiesen werden. Wenn Sie sowohl CACHE
als auch NOCACHE
weglassen, speichert die Datenbank standardmäßig 20 Sequenznummern.
ORDER Geben Sie ORDER
an, um zu gewährleisten, dass die Sequenznummern in der Reihenfolge der Anforderung erzeugt werden. Diese Klausel ist nützlich, wenn Sie die Sequenznummern als Zeitstempel verwenden. Für Sequenzen, die zur Generierung von Primärschlüsseln verwendet werden, ist die Gewährleistung der Reihenfolge in der Regel nicht wichtig.
ORDER
ist nur notwendig, um eine geordnete Generierung zu gewährleisten, wenn Sie Oracle Real Application Clusters verwenden. Wenn Sie den exklusiven Modus verwenden, werden die Sequenznummern immer in der Reihenfolge generiert.
NOORDER Geben Sie NOORDER
an, wenn Sie nicht garantieren möchten, dass die Sequenznummern in der Reihenfolge der Anfrage generiert werden. Dies ist die Standardeinstellung.