Semantics
schema
Specificați schema care va conține secvența. Dacă omiteți schema
, atunci Oracle Database creează secvența în propria schemă.
sequence
Specificați numele secvenței care urmează să fie creată.
Dacă nu specificați niciuna dintre clauzele următoare, atunci creați o secvență ascendentă care începe cu 1 și crește cu 1 fără limită superioară. Dacă se specifică doar INCREMENT
BY
-1 se creează o secvență descrescătoare care începe cu -1 și descrește fără limită inferioară.
-
Pentru a crea o secvență care crește fără limită, pentru secvențe ascendente, omiteți parametrul
MAXVALUE
sau specificațiNOMAXVALUE
. Pentru secvențe descrescătoare, omiteți parametrulMINVALUE
sau specificațiNOMINVALUE
. -
Pentru a crea o secvență care se oprește la o limită predefinită, pentru o secvență ascendentă, specificați o valoare pentru parametrul
MAXVALUE
. Pentru o secvență descendentă, specificați o valoare pentru parametrulMINVALUE
. De asemenea, specificațiNOCYCLE
. Orice încercare de a genera un număr de secvență după ce secvența a ajuns la limită produce o eroare. -
Pentru a crea o secvență care repornește după atingerea unei limite predefinite, specificați valori pentru ambii parametri
MAXVALUE
șiMINVALUE
. De asemenea, specificațiCYCLE
. Dacă nu specificațiMINVALUE
, atunci valoarea implicită esteNOMINVALUE
, care este valoarea 1.
INCREMENT BY Specificați intervalul dintre numerele secvenței. Această valoare întreagă poate fi orice număr întreg pozitiv sau negativ, dar nu poate fi 0. Această valoare poate avea 28 sau mai puține cifre. Valoarea absolută a acestei valori trebuie să fie mai mică decât diferența dintre MAXVALUE
și MINVALUE
. Dacă această valoare este negativă, atunci secvența este descrescătoare. Dacă valoarea este pozitivă, atunci secvența este ascendentă. Dacă omiteți această clauză, atunci intervalul este implicit la 1.
START WITH Specificați primul număr de secvență care urmează să fie generat. Utilizați această clauză pentru a începe o secvență ascendentă la o valoare mai mare decât minimul său sau pentru a începe o secvență descendentă la o valoare mai mică decât maximul său. Pentru secvențele ascendente, valoarea implicită este valoarea minimă a secvenței. În cazul secvențelor descrescătoare, valoarea implicită este valoarea maximă a secvenței. Această valoare întreagă poate avea 28 sau mai puține cifre.
Nota:
Această valoare nu este neapărat valoarea la care o secvență ciclică ascendentă se ciclează după ce a atins valoarea sa maximă sau minimă.
VALOAREMAX Specificați valoarea maximă pe care o poate genera secvența. Această valoare întreagă poate avea 28 sau mai puține cifre. MAXVALUE
trebuie să fie egală sau mai mare decât START
WITH
și trebuie să fie mai mare decât MINVALUE
.
NOMAXVALUE Specificați NOMAXVALUE
pentru a indica o valoare maximă de 1027 pentru o secvență ascendentă sau -1 pentru o secvență descendentă. Aceasta este valoarea implicită.
MINVALUE Specificați valoarea minimă a secvenței. Această valoare întreagă poate avea 28 sau mai puține cifre. MINVALUE
trebuie să fie mai mică sau egală cu START
WITH
și trebuie să fie mai mică decât MAXVALUE
.
NOMINVALUE Specificați NOMINVALUE
pentru a indica o valoare minimă de 1 pentru o secvență ascendentă sau -1026 pentru o secvență descendentă. Aceasta este valoarea implicită.
CYCLE Specificați CYCLE
pentru a indica faptul că secvența continuă să genereze valori după ce a atins fie valoarea maximă, fie valoarea minimă. După ce o secvență ascendentă atinge valoarea sa maximă, aceasta generează valoarea sa minimă. După ce o secvență descendentă atinge valoarea sa minimă, aceasta generează valoarea sa maximă.
NOCYCLE Specificați NOCYCLE
pentru a indica faptul că secvența nu poate genera mai multe valori după ce a atins valoarea sa maximă sau minimă. Aceasta este valoarea implicită.
CACHE Specificați câte valori ale secvenței prealocă baza de date și le păstrează în memorie pentru un acces mai rapid. Această valoare întreagă poate avea 28 sau mai puține cifre. Valoarea minimă pentru acest parametru este 2. Pentru secvențele care se succed, această valoare trebuie să fie mai mică decât numărul de valori din ciclu. Nu puteți pune în memoria cache mai multe valori decât încap într-un anumit ciclu de numere de secvență. Prin urmare, valoarea maximă permisă pentru CACHE
trebuie să fie mai mică decât valoarea determinată de următoarea formulă:
(CEIL (MAXVALUE - MINVALUE)) / ABS (INCREMENT)
Dacă are loc o defecțiune a sistemului, atunci toate valorile secvențelor memorate în memoria cache care nu au fost utilizate în instrucțiuni DML angajate sunt pierdute. Numărul potențial de valori pierdute este egal cu valoarea parametrului CACHE
.
Nota:
Oracle recomandă utilizarea parametrului CACHE
pentru a îmbunătăți performanța dacă utilizați secvențe într-un mediu Oracle Real Application Clusters.
NOCACHE Specificați NOCACHE
pentru a indica faptul că valorile secvenței nu sunt prealocate. Dacă omiteți atât CACHE
cât și NOCACHE
, atunci baza de date memorează implicit 20 de numere de secvență.
ORDER Specificați ORDER
pentru a garanta că numerele de secvență sunt generate în ordinea solicitării. Această clauză este utilă dacă utilizați numerele de secvență ca marcaje temporale. Garantarea ordinii nu este de obicei importantă pentru secvențele utilizate pentru a genera chei primare.
ORDER
este necesară numai pentru a garanta generarea ordonată dacă utilizați Oracle Real Application Clusters. Dacă utilizați modul exclusiv, atunci numerele de secvență sunt întotdeauna generate în ordine.
NOORDER Specificați NOORDER
dacă nu doriți să garantați că numerele de secvență sunt generate în ordinea solicitării. Aceasta este valoarea implicită.