Bir sayaç tablosu olarak isimlendirebileceğimiz “Sequence” tipi tablolar verilen bir sayıdan başlayarak artan veya azalan değerlerde sayı üretilmesi için kullanılır. Özellikle başka tablolarda yer alan ve kullanıcı müdahalesine gerek kalmadan programcılar tarafından sisteme yüklenen numara alma işlemleri için kullanılır.
CREATE SEQUENCE
[START WITH sayi]
[INCREMENT BY sayi]
[MINVALUE sayi | NOMINVALUE]
[MAXVALUE sayi | NOMAXVALUE]
[CYCLE | NOCYCLE ]
[CACHE sayi | NOCACHE]
[ORDER | NOORDER]
START WITH Sayacın başlayacağı değerdir.
INCREMENT BY Sayacın kaçar kaçar artacağını gösteren değerdir.
MINVALUE Sayacın alacağı en ufak değeri gösterir.
NOMINVALUE İlk değer olarak seçilidir. Sayaçların artması durumunda değeri 1, azalması durumunda 10 üzeri 26 değerini alır.
MAXVALUE Sayacın alacağı en büyük değeri gösterir.
NOMAXVALUE İlk değer olarak seçilidir. Sayaçların artması durumunda ki değeri 10 üzeri 26 değerini alır, azalaması durumunda –1 dir.
NOCYCLE İlk değer olup, sayaç almanın ilk veya son değerine ulaştığında sayı üretilmesi durur.
CACHE Sayaç alınması sırasında kaç sayının bellekte tutulacağını gösterir.
NOCACHE Türetilen sayılar bellekte tutulmayacak anlamındadır.
ORDER Sayaç tablosunun üreteceği sayılar sıralı olacaktır.
NOORDER Sayaç tablosu rastgele sırada sayı üretecektir.
Aşağıdaki örnekte “sayac_al” tablosu 1’den başlayarak her defasında 1 artarak sayı üretecektir.
CREATE SEQUENCE sayac_al
START WITH 1
INCREMENT BY 1
ORDER;
Bu “sayac_al” tablosundan yeni bir sayı alınması için NEXTVAL deyimi kullanılır;
SELECT sayac_al.NEXTVAL FROM dual;
“sayac_al” tablosunun şuanki değerini görmek için CURRVAL deyimi kullanılır;
SELECT sayac_al.CURRVAL FROM dual;
Bu tür işlemlerin yapılabilmesi içi DUAL tablosundan yararlanılır.